linux内核抢占
书上是这么说的:如果不支持内核抢占,那么内核代码可以一直执行,到它完成为止。
这句话的意思是:如果没有内核抢占,处于内核态的进程不受时间片控制???直到该进程从内核空间返回用户空间,才发生抢占??
不太理解。
如果是就像我上面说的那样,考虑下面一种情形:
在单处理器机器上,一个进程A在内核态下拥有自旋锁,被阻塞后,另外一个进程B被调度执行,也执行到同样的一段内核代码,申请同一个自旋锁,但是由于进程A并没有释放该锁,所以B会一直自旋等待,同时内核被禁止抢占,此时,进程B就一直执行,而A无法释放锁,也就是死锁了???
当然事实肯定不是这样,所以不知道这里面,哪里有错误。
望高手帮忙解惑阿,谢谢