从零开始之驱动发开、linux驱动(二十、linux设备驱动中的并发控制)

本文详细介绍了Linux设备驱动中的并发控制问题,涉及对称多处理器(SMP)环境下的并发、中断屏蔽、原子操作、自旋锁、互斥体等机制。在SMP系统中,竞态条件可能导致数据不一致,通过中断屏蔽、原子操作如整型和位原子操作来确保互斥访问。自旋锁和互斥体作为防止并发访问临界区的手段,各自有其适用场景。自旋锁适用于临界区执行时间短的情况,而互斥体则用于进程级别的互斥,允许临界区阻塞。同时,文章讨论了读写自旋锁和顺序锁,以及读-复制-更新(RCU)机制,提供了一种高性能的读写同步方案。最后,文章提到了完成量作为同步工具的使用。
摘要由CSDN通过智能技术生成

本文参考自宋宝华老师的《linux驱动开发详解》

 

并发(Concurrency) 指的是多个执行单元同时、 并行被执行, 而并发的执行单元对共享资源(硬件资源和软件上的全局变量、 静态变量等) 的访问则很容易导致竞态(Race Conditions)
 

只要并发的多个执行单元存在对共享资源的访问, 竞态就可能发生。

 

1.对称多处理器(SMP) 的多个CPU


SMP是一种紧耦合、 共享存储的系统模型,, 它的特点是多个CPU使用共同的系统总线, 因此可访问共同的外设和储存器。

在SMP的情况下, 两个核(CPU0和CPU1) 的竞态可能发生于CPU0的进程与CPU1的进程之间、CPU0的进程与CPU1的中断之间以及CPU0的中断与CPU1的中断之间, 下图中任何一条线连接的两个实体都有核间并发可能性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的小刺猬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值