DumpStack

locking
locking

内核同步机制之(六):RCU

      占个坑位。。。    

2022年9月18日 0条评论 1369点热度 0人点赞 tmmdh 阅读全文
locking

内核同步机制之(五):rwsem - 读写锁

        rwsem特性: a) 允许多个reader同时进入临界区; b) 只允许一个writer同时进入临界区; c) 当临界区是reader时,其他reader可以进入临界区,但是writer必须等着; d) 当临界区是writer时,其他任何线程,不管是reader还是writer,都必须等着;   本文分析基于Linux5.10.61   一、数据结构 1.1 rw_semaphore 在设计rw_semaphore数据结构时考虑到了cache的一致性,我们自己在编码时也应该考虑 [……

2022年9月18日 2条评论 3081点热度 2人点赞 tmmdh 阅读全文
locking

内核同步机制之(四):mutex – 互斥锁

    占个坑位。。。            

2022年9月18日 0条评论 1501点热度 0人点赞 tmmdh 阅读全文
locking

内核同步机制之(三):spin – 自旋锁

        占个坑位。。。。            

2022年9月18日 0条评论 1485点热度 0人点赞 tmmdh 阅读全文
locking

内核同步机制之(二):atomic - 原子操作

      注意:ARMv6之前的CPU并不支持SMP,之后的ARM架构都是支持SMP的,因此,对于ARM处理器,其原子操作分成了两个阵营,一个是支持SMP的ARMv6之后的CPU,另外一个就是ARMv6之前的,只有单核架构的CPU 另外,ARMv6之前的CPU只支持swp/swpb指令,ARMv6之后的CPU只支持ldrex/strex指令   一、数据结构 1.1 atomic_t - 实际就是一个int型变量 typedef struct {     int counter;        [……

2022年9月18日 0条评论 1930点热度 0人点赞 tmmdh 阅读全文
locking

内核同步机制之(一):ARM同步机制底层原理

      ARM提供了SWP或LDREX/STREX指令集,这两个指令从RTL层面保证了"在某一时刻,只能有一个CPU成功修改内存中的值"。kernel利用这个特点,实现了atomic和spin等操作,是所有同步操作的基石。   一、术语介绍 1.1 睡眠 睡眠是对线程而言的,是线程的一种特殊状态,此被"睡眠"的对象一定要有一个task_struct结构,也就是说只有线程才能睡眠。 睡眠是当前线程在等待暂时无法获得的资源时,避免当前线程一直占用着CPU,将自己放入一个等待队列中,让出CPU给别 [……

2022年9月18日 0条评论 2122点热度 0人点赞 tmmdh 阅读全文

tmmdh

这个人很懒,什么都没留下

分类
  • cpuidle
  • locking
  • 未分类
  • 调度原理
  • 调试工具
  • 负载跟踪

COPYRIGHT © 2022 dumpstack.cn. ALL RIGHTS RESERVED.

浙ICP备2022000966号