当前位置: 技术问答>linux和unix
关于有自旋锁进程不能被抢占和调度
来源: 互联网 发布时间:2016-08-17
本文导语: RT 请问大家这是为什么啊?我觉得如果被调度也不会引起死锁吧,其他进程没有锁也不会进入临界区啊?难道是怕他被调度以后,需要锁的其他进程空转浪费CPU时间?还请大家给点意见。 | ===============...
RT 请问大家这是为什么啊?我觉得如果被调度也不会引起死锁吧,其他进程没有锁也不会进入临界区啊?难道是怕他被调度以后,需要锁的其他进程空转浪费CPU时间?还请大家给点意见。
|
===================================================================
持有锁的进程是不会被调度的, 这是进程调度机制所决定的。
当然,如果你先加锁了,然后手动的 释放的 cpu, 也是可以的,不过会有很大的隐患。
比如 A 进程持有锁, 然后 schedule() , 锁没有被释放。
然后 B 进程请求锁, 自然是得不到, 并且 B 不会释放 CPU, B 不能被调度, 后果是什么?
|
要可能早地释放拥有的自旋锁
如果被抢占调度
那么其他进程就很有可能在等待这个锁 死锁的条件就很容易形成
如果被抢占调度
那么其他进程就很有可能在等待这个锁 死锁的条件就很容易形成
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。