一段自旋锁和中断不能睡眠的解释

来源:互联网 发布:java 获取泛型 gson 编辑:程序博客网 时间:2024/04/28 17:25

自旋锁不能睡眠:

    A获得锁睡眠,B在等锁怎么办,可能会等很久哦,B就一直自旋等着,光等着不干活。获得锁,本来就是要操作一些共享资源,所以赶快的,别墨迹,还睡个球。


禁止中断不能睡眠:

    禁止中断就是希望不被打扰,赶紧干完自己该做的事,还睡觉,我靠,还想不想干了。当硬件中断来的时候,这种情况不能睡眠,想想也对,你来强行打断人家,还想带着人家去睡,怎么可以,中断上下文不应该睡眠,只有进程上下文可以睡,技术当然可以实现,但没有意义。


    spinlock的初衷是关调度,别人别和我抢这个临界区,同时也不让其他核抢。

    关中断时不能睡眠,因为睡眠依赖调度器,调度器通过时钟中断判断何时唤醒任务。

0 0