Linux内核分析与应用7-内核同步

简介: Linux内核分析与应用7-内核同步
+关注继续查看

微信截图_20230926014320.png

7.1 Linux同步概述


竞态条件,也称竞争条件,race condition

临界区

微信截图_20230926014333.png

微信截图_20230926014339.png

原子操作,Linux专门有一个atomic_t结构体

微信截图_20230926014417.png

问题:

在多核系统中遇到原子操作,在系统层面上原子操作还是原子的吗?在核级还是原子的吗?

微信截图_20230926014435.png

死锁:所有的任务都在相互等待,但他们永远不会释放已占有的资源,于是任何任务都无法继续执行

死锁的避免: 加锁的顺序是关键

image.png

思考:

死锁是一种小概率事件还是大概率事件?如果内核出现死锁,该如何应对?



7.2 内核同步机制

微信截图_20230926014609.png

原子操作已经讲过.

中断屏蔽:

image.png

自旋锁:(spin lock)

专为多处理器并发而引入的一种锁,在内核中大量应用于中断处理部分

在短期时间内,进行轻量级的锁定

同一时刻,只能为一个处理器所持有, 防止多处理器并发访问临界区,防止内核抢占造成的竞争


信号量:

微信截图_20230926014654.png

微信截图_20230926014701.png

P/V操作

微信截图_20230926014743.png

微信截图_20230926014750.png

微信截图_20230926014757.png

经典实例: 生产者-消费者并发实例


目录
相关文章
|
3月前
|
算法 固态存储 Unix
Linux内核分析与应用9-设备驱动
Linux内核分析与应用9-设备驱动
64 0
|
3月前
|
缓存 Linux 索引
Linux内核分析与应用8-文件系统
Linux内核分析与应用8-文件系统
56 0
|
3月前
|
Unix Linux API
Linux内核分析与应用6-系统调用
Linux内核分析与应用6-系统调用
32 0
|
3月前
|
Linux
Linux内核分析与应用5-中断
Linux内核分析与应用5-中断
29 0
|
3月前
|
缓存 算法 Linux
Linux内核分析与应用4-内存管理
Linux内核分析与应用4-内存管理
45 0
|
3月前
|
算法 Linux 编译器
Linux内核分析与应用3-进程管理
Linux内核分析与应用3-进程管理
33 0
|
3月前
|
存储 缓存 Linux
Linux内核分析与应用2-内存寻址
Linux内核分析与应用2-内存寻址
53 0
|
3月前
|
Unix Linux API
Linux内核分析与应用
Linux内核分析与应用
49 0
Linux内核分析与应用
相关产品
云迁移中心
推荐文章
更多