当前位置: 技术问答>linux和unix
linux内核抢占
来源: 互联网 发布时间:2016-08-31
本文导语: 本帖最后由 SARA520 于 2010-06-04 22:31:33 编辑 书上是这么说的:如果不支持内核抢占,那么内核代码可以一直执行,到它完成为止。 这句话的意思是:如果没有内核抢占,处于内核态的进程不受时间片控制???直到该...
这句话的意思是:如果没有内核抢占,处于内核态的进程不受时间片控制???直到该进程从内核空间返回用户空间,才发生抢占??
不太理解。
如果是就像我上面说的那样,考虑下面一种情形:
在单处理器机器上,一个进程A在内核态下拥有自旋锁,被阻塞后,另外一个进程B被调度执行,也执行到同样的一段内核代码,申请同一个自旋锁,但是由于进程A并没有释放该锁,所以B会一直自旋等待,同时内核被禁止抢占,此时,进程B就一直执行,而A无法释放锁,也就是死锁了???
当然事实肯定不是这样,所以不知道这里面,哪里有错误。
望高手帮忙解惑阿,谢谢
|
不支持抢占只说明是不可剥夺的,表示一个任务不能别打断,但是可以自己睡觉发生调度。而且没有必要太抓住概念,还不如看哈代码清楚,发生调度的情况有很多种,
|
忙循环是不会自己主动放弃CPU的吧???
要看操作系统怎么实现了……
要看操作系统怎么实现了……