Durian_piza
码龄5年
关注
提问 私信
  • 博客:32,897
    32,897
    总访问量
  • 55
    原创
  • 2,331,999
    排名
  • 7
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-05-16
博客简介:

Durian_piza的博客

查看详细资料
个人成就
  • 获得10次点赞
  • 内容获得3次评论
  • 获得83次收藏
创作历程
  • 19篇
    2023年
  • 38篇
    2022年
成就勋章
TA的专栏
  • 操作系统
    6篇
  • 数据结构与算法
    7篇
  • Spring源码揭秘
    2篇
  • Redis底层源码篇
    5篇
  • ConcurrentPrograming
    6篇
  • 深入理解Netty底层实现
    5篇
  • Mysql底层剖析
    6篇
  • 深入浅析TCP/IP合集
    8篇
  • JVM——由浅入深系列
    2篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

操作系统是如何实现锁的?

首先要搞清楚一个概念,在硬件层面,CPU 提供了原子操作、关中断、锁内存总线的机制;OS 基于这几个 CPU 硬件机制,就能够实现锁;再基于锁,就能够实现各种各样的同步机制(信号量、消息、Barrier 等)在多线程编程中,为了保证数据操作的一致性,操作系统引入了锁机制,用于保证临界区代码的安全。通过锁机制,能够保证在多核多线程环境中,在某一个时间点上,只能有一个线程进入临界区代码,从而保证临界区中操作数据的一致性。锁机制的一个特点是它的同步原语都是原子操作操作系统之所以能构建锁之类的同步原语,是因为硬件已
原创
发布博客 2023.04.07 ·
1173 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

系统调用的基本概念

我们运行的程序基本都是运行在用户态,如果需要调用操作系统提供的系统态级别的子功能,就需要系统调用。也就是说在我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
原创
发布博客 2023.04.07 ·
392 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用户态、内核态的基本概念及切换方式

用户态:用户态运行的进程可以直接读取用户程序的数据内核态:内核态运行的进程或程序几乎可以访问计算机的任何资源,不受限制两者最重要的差别就在于特权级的不同,即权力的不同。运行在用户态下的程序不能直接访问操作系统内核数据结构和程序。当我们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成某些它没有权力和能力完成的工作时就会切换到内核态1. 系统调用:这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。而系统调用的机制其核心还是使
原创
发布博客 2023.04.07 ·
1343 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

内存管理机制、分页和分段共同点和区别、基本分页储存管理方式、基本分段储存管理方式、段页式内存管理

内存的内部是由各种 IC 电路组成的,它的种类很庞大,但是其主要分为三种存储器:操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),另外地址转换也就是将逻辑地址转换成相应的物理地址等功能也是操作系统内存管理做的事情连续分配管理方式:连续分配管理方式是指为一个用户程序分配一个连续的内存空间,常见的如块式管理1. 页式管理 :把主存分为大小相等且固定的一页一页的形式,页较小,相对相比于块式管理的划分力度更大,提高了内存利用率,减少了碎片。页式管理通过
原创
发布博客 2023.04.07 ·
857 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

CPU的基本概念、CPU调度、CPU常见考点

1. CPU(中央处理器)2. 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。3. 资源分配的最小单位是进程,而 CPU 调度的最小单位是时间片。4. 系统为进程分配资源,不对线程分配资源1. 高级调度(作业调度):2. 中级调度:3. 低级调度(进程调度/线程调度)
原创
发布博客 2023.04.07 ·
728 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

操作系统的基本概念

1. 并发:同一段时间内多个程序执行。2. 共享:系统中的资源可以被内存中多个并发执行的进线程共同使用。3. 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进4. 虚拟 :通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个。
原创
发布博客 2023.04.07 ·
164 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

操作系统中的堆栈

操作系统的堆和栈是指对内存进行操作和管理的一些方式这和数据结构中的堆和栈是有区别的。1. 一般由程序员分配释放,并指明大小,堆被程序申请使用的内存在被主动释放前一直有效。堆需要由由程序员手动释放,不及时回收容易产生内存泄露。程序结束时可能由操作系统回收。2. 栈是存放在一级缓存中的,而堆则是存放在二级缓存中的,堆的生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收),所以调用这些对象的速度要相对来得低一些,故堆的速度慢于栈的速度3. 与数据结构中的堆是不同的,分配方式类似于链
原创
发布博客 2023.04.07 ·
883 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

死锁的基本概念、死锁的触发条件、如何解决死锁问题、如何查看死锁?

死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
原创
发布博客 2023.04.07 ·
426 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode713

以当前元素(即right指向的元素)为尾缀的元素有多少个,一共有right-left+1个。
原创
发布博客 2023.04.06 ·
84 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

并查集(leetcode547、leetcode990题解)

【代码实现】并查集(leetcode547、leetcode990题解)
原创
发布博客 2023.04.06 ·
81 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何实现数状数组?

【代码】如何实现数状数组?
原创
发布博客 2023.04.06 ·
78 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

KMP算法的实现

首先匹配串会检查之前已经匹配成功的部分中里是否存在相同的「前缀」和「后缀」。
原创
发布博客 2023.04.06 ·
72 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二分查找查找一个大于等于target的数、第一个等于target的元素、最后一个等于target的元素、一个数组里面最接近的target的数、二分查找有序矩阵为target的元素

一个数组里面最接近的target的数,While循环必须是left
原创
发布博客 2023.04.06 ·
435 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

BeanFactory与ApplicationContex的区别

BeanFactory与ApplicationContext的区别
原创
发布博客 2023.04.06 ·
79 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

快速排序、双路快排、插入排序、冒泡排序、选择排序、堆排序、归并排序、基数排序

本文主要讲诉了常见的排序算法,还有排序算法的一些升级版,例如双路快排等
原创
发布博客 2023.04.05 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

链表反转的三种方法

本文主要对链表反转的三种方法进行了实现,分别使用了迭代,新建一条链表进行迭代,还有使用递归进行反转。
原创
发布博客 2023.04.05 ·
81 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode742

本文主要讲诉了leetcode中使用dijkstra算法来求最短路径的问题
原创
发布博客 2023.04.05 ·
74 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

图的BFS与DFS

本文主要讲诉了图的BFS与DFS的具体代码实现过程
原创
发布博客 2023.04.05 ·
83 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring源码全体系流程图

讲诉Spring xml文件得解析,生成对应的beanDefinition存入BeanFactory,接下来还包括Bean的实例化和初始化阶段各个重要接口的调用
原创
发布博客 2023.04.05 ·
297 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Netty底层剖析——零拷贝

零拷贝:不是说没有拷贝,而是拷贝的过程不需要通过CPU来搬运数据,所有的数据都是通过DMA来传输,零拷贝技术的文件传输方式相比传统文件传输的方式,减少了 2 次上下文切换和数据拷贝次数,只需要 2 次上下文切换和数据拷贝次数,就可以完成文件的传输,而且 2 次的数据拷贝过程,都不需要通过 CPU,2 次都是由 DMA 来搬运。大文件不应该使用零拷贝。 1、Netty的接受和发送ByteBuffer采用DIRECT BUFFERS,使用堆外直接内存进行Socket读写,不需要进行字节缓冲区的二
原创
发布博客 2022.07.26 ·
1140 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多