我正在努力理解抢占式和非抢占式内核以及抢占式和非抢占式调度之间的区别。
来自操作系统概念(第九版)、Silberschatz、Galvin 和 Gagne:
抢占式内核是内核允许进程在内核模式下运行时被删除和替换的地方。
非抢占式内核不允许以内核模式运行的进程被抢占;内核模式进程将一直运行,直到它退出内核模式、阻塞或自愿放弃对 CPU 的控制。
在非抢占式调度下,一旦 CPU 被分配给一个进程,该进程就会保留 CPU,直到它通过终止或切换到等待状态来释放 CPU。- 这对我来说似乎与非抢占内核的描述完全相同。
抢占式调度发生在这两种情况下(来自同一本书):
*当进程从运行状态切换到就绪状态时(例如发生中断时)
当进程从等待状态切换到就绪状态时(例如,在 I/O 完成时)*
这本书只是说在这种情况下有一个选择,我不确定这个选择是否存在。是选择继续运行就绪队列中的同一个进程,还是选择运行就绪队列中的不同进程?
基本上,我正在寻找对这 4 个术语的明确说明。
谢谢!