文件名称:spinlock_test.c
文件大小:4KB
文件格式:C
更新时间:2023-11-17 11:11:22
linux 锁 同步
2.3.5.1 自旋锁不会导致睡眠 自旋锁是一种忙等锁,不会导致睡眠,所以可以用在中断上下文中 2.3.5.2 持有自旋锁不能睡眠 ① 如果是在中断上下文中持有自旋锁,不能睡眠是应有之义 ② 如果是在进程上下文中持有自旋锁,也是不能睡眠的。因为自旋锁会关抢占,该进程一旦睡眠,该CPU上就无法再调度其他任务执行,只能响应中断 在实际使用中,在关抢占的情况下调用schedule,内核允许会报bug 2.3.5.3 自旋锁变种分析 自旋锁变种使用的原则就是谁抢CPU就关谁 ① 何时关中断 如果除了当前的内核任务,还有中断处理程序会访问临界区,则需要关中断。其中需要注意的是,即使是在单核CPU中