中断屏蔽
1. 中断屏蔽将使得中断与进程之间的并发不再发生;
2. 内核的进程调度等操作都依赖中断来实现,内核抢占进程之间的并发也不再发生;
3. 接口:
local_irq_disable() //屏蔽中断 . . . critical section //临界区 . . . local_irq_enable() //开中断
4. local_irq_disable()和 local_irq_enable()都只能禁止和使能本 CPU 内的中断, 因此,并不能解决 SMP 多 CPU 引发的竞态。因此,单独使用中断屏蔽通常不是一种值得推荐的避免竞态的方法,它适宜与自旋锁联合使用;
5. 与 local_irq_disable()不同的是,local_irq_save(flags)除了进行禁止中断的操作以外, 还保存目前 CPU 的中断位信息, local_irq_restore (flags) 进行的是与 local_irq_save(flags)相反的操作;
6. 如果只是想禁止中断的底半部,应使用 local_bh_disable(), 使能被 local_bh_disable()禁止的底半部应该调用 local_bh_enable()。
posted on 2024-09-07 12:15 f1engmin11 阅读(6) 评论(0) 编辑 收藏 举报