日期:2014-05-16  浏览次数:20857 次

抢占式和非抢占式的
关于抢占式的和非抢占式系统有几个问题
非抢占式是不是就是指在一个进程自己终止之前不能去抢占而去调度其他进程(不管它是在内核态还是在用户态)
而抢占式的可以在用户态抢占一个进程(但在内核态仍不可以,bach的unix操作系统设计提到,运行在内核态的进程不能被抢占)

可看网上又有抢占式内核和非抢占式的内核的说法
非抢占式内核就是指运行在内核态的进程不能被抢占。
抢占式内核可以把运行在内核态的进程抢占了。
请问这两种分法对吗?

------解决方案--------------------
抢占式的内核是指只要在CPU时钟产生中断的时候,就有权进行任务切换,无论当前任务执行到何种状态;非抢

占式的内核的切换依赖的是任务内部的消息处理和调度函数,在这个任务没有结束之前,不会执行其它的任务。

PS:现在讨论的是内核,全都是处于核心态的,你将内核的任务和OS里面的用户进程搞混了吧...
------解决方案--------------------
你的理解是错误的,
抢占式的内核就是当一个进程在运行,另一个更高优先级的进程就绪了,那么要立刻中止当前进程转而去执行那个更高优先级的进程.
而非抢占式的内核就是所有进程的优先级一样,只有这个进程运行完了,或所分到的时间片用完了,又或是一个调度时钟周期到了才会交出系统运行权.

不论是抢占式还是非抢占式在一个CPU定时时钟产生后就有权进行任务切换.

探讨
抢占式的内核是指只要在CPU时钟产生中断的时候,就有权进行任务切换,无论当前任务执行到何种状态;非抢

占式的内核的切换依赖的是任务内部的消息处理和调度函数,在这个任务没有结束之前,不会执行其它的任务。

PS:现在讨论的是内核,全都是处于核心态的,你将内核的任务和OS里面的用户进程搞混了吧...