自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 读/写信号量--来自深入理解Linux内核

读写信号量类似与读写自旋锁,区别是读写信号量再次变为打开之前,等待进程挂起而不是自旋。结构并发读信号,写者互斥访问。内核按照严格FIFO顺序处理等待读写信号量的所有进程。如果读者或写者进程发现信号量关闭,这些进程就被插入到信号量等待队列链表的末尾。...

2019-06-30 16:05:23 525

原创 内核信号量--来自深入理解Linux内核

信号量Linux提供两种信号量: 内核信号量,由内核控制路径使用; System V IPC信号量,由用户态进程使用;内核信号量1、内核信号量类似于自旋锁,当锁关闭时,不允许内核控制路径继续前进;2、当内核控制路径想要获取内核信号量所保护的资源时,若资源被占用,则当前进程被挂起,等待;3、当资源释放时,选择一个或多个等待该资源的进程唤醒,继续执行;4、只有可以睡眠的函数才能过获...

2019-06-25 08:34:26 296

原创 RCU--(read--copy--update)--来自深入理解Linux内核

读–拷贝–更新与读–修改–写读–修改–写需要访问两次存储器,分别为读原值和写新值,在多处理器情况下,对同一个数据结构的此串操作,若不进行同步操作,可会会导致最终结果错误。RCU为保护在多数情况下被多个CPU读的数据结构而设计的另一种同步技术。RCU允许多个读者和写者并发执行,且不使用锁,即不使用被所有CPU共享的锁或计数器,在这一点上与R/W锁或顺序锁相比较,RCU更具有优势。RCU如何...

2019-06-24 08:15:25 637

原创 读写自旋锁--来自深入理解Linux内核一书

linux读写自旋锁实现机制分析

2019-06-23 22:12:54 754

原创 Linux中spinlock--来自深入理解Linux内核一书

linux spinlock实现分析

2019-06-22 23:19:14 382

原创 gcc内嵌汇编&&结合linux源码分析--来自深入理解Linux内核一书

ASM格式:__asm__ __volatile__("Instruction List" : Output : Input : Clobber/Modify);指令集、输出、输入、修改部分;例如:linux中atomic64_read函数,如下:static inline long long atomic64_read(const atomic64_t *v) { reg...

2019-06-22 15:43:07 177

翻译 Linux中的原子访问--来自深入理解Linux内核一书

80x86指令:进行0次或1次对齐内存访问的汇编指令是原子的;(如short地址必须是2的倍数、int的地址必须是4的倍数等) 读-修改-写之间没有其他处理器占用内存总线,则此序列操作是原子的; 操作码前缀是lock字节(0xf0)的“读-修改-写”汇编语言指令即使在多处理器系统中也是原子的。lock前缀在实际运行过程中,由控制单元检查,并当检查到该前缀时,将“锁定”内存总线,直到指令执行...

2019-06-22 15:20:44 205

原创 gcc inline理解

只测试过Ubuntu gcc,其他未测试。1、inline 函数在Ubuntu 16.04.2 LTS 上gcc无法编译通过,显示undefined reference to `print',print是定义的 inline函数。inline在gcc中实际情况是:a.对于同一个文件来说,inline函数相对于extern函数是建议编译器内联展开;b.编译器一定会为该inline

2017-06-02 15:32:54 1624 1

原创 关于《C陷阱和缺陷》中的(*(void(*)())0)()表达式的一点解析

如《C陷阱和缺陷》书中所说,表达式(*(void(*)())0)()功能主要用于模拟在计算机启动时,作为硬件调用首地址为0的子程序的C语句。{ (* { (void(*)()) } 0) } ()对于第一次看到这个表达式的人,都会有无从下手的感觉。但通过对书中所阐述的解释,终于一点一点理解了这个表达式。解析如下:1.指向函数指针的定义为:(type) (*Func...

2017-02-22 20:39:36 2021

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除