Fork Me on GitHub

源码开放学ARM

LASO - Learn ARM with Source Open

首页         目录索引         资料下载         代码下载         联系作者        
下载PDF打印版本

Linux 驱动的并发控制

并发与竞态

什么是并发与竞态

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

并发与竞态发生的条件

1、对称多处理器(SMP)的多个CPU。
2、单CPU内进程与强占它的进程。
3、中断(硬件中断,软中断,tasklet)与进程之间。

解决并发与竞态的途径

解决竞态的最根本的途径是对共享资源的互斥访问,访问共享资源的代码区域成为临界区(critical sections),对临界区的代码需要以某种互斥机制加以保护。

常用的互斥机制有:中断屏蔽 、原子操作、自旋锁、信号量。

上一节 | 目录索引 | 下一节

blog comments powered by Disqus