[[208856]]
并发指的备驱是多个执行单元同时、并行被执行,动中的并而并发的发控执行单元对共享资源的访问则很容易导致竞态。
linux内核中主要竞态
1.多对称处理器的备驱多个CPU
2.单CPU内进程与抢占它的进程
3.中断(硬中断、软中断、动中的并Tasklet、发控下半部)与进程之间
访问共享内存资源的备驱代码区称为“临界区”,临界区需要被以某种互斥机制加以保护,动中的并中断屏蔽、发控原子操作、备驱自旋锁和信号量等,动中的并是发控linux设备驱动中可采用的互斥途径。
这几个互斥的介绍:
1.中断屏蔽,这个主要用于单CPU,中断屏蔽将使得中断和进程之间的并发不再发生。
使用方法:
- local_irq_disable();//屏蔽中断
- ...
- ...
- 临界区
- ...
- local_irq_enable();//开中断
由于linux的异步IO、进程调度等很多重要的操作都依赖于中断,中断对于内核的运行非常重要,在屏蔽中断期间所有的中断都无法处理,因此长时间的屏蔽中断很危险,有可能导致数据丢失甚至系统崩溃。所以这个不作为重点讨论。
(责任编辑:知识)
三星Note7电池发热燃烧造成客机地毯起火 客机航班被迫取消
568万元!四川省攀枝花市获省建筑领域绿色低碳循环发展专项资金支持
《Cosplay模拟器》Steam版发售 能解锁各种绅士场景
端到端自动驾驶下的轨迹预测,未来走向如何?最新综述一览前沿!