【发布时间】:2017-08-17 17:02:32
【问题描述】:
我发现在就绪队列中准备好执行的进程由调度程序控制 CPU。调度程序根据其调度算法选择一个进程,然后将 CPU 控制权交给选定的进程,如果它遵循抢占式风格,则稍后抢占。我想知道,如果处理器正在使用 CPU 的处理单元,那么如果处理单元不可用,那么谁来抢占和调度进程。
【问题讨论】:
-
在预定的时间,CPU 中断当前进程并将控制权交给内核。从那里调度程序完成它的工作
-
每次新进程进入就绪队列时都会发生这种情况吗?因此在抢占式风格中,每次进程进入就绪队列时内核都会使用 CPU,即使新进程没有根据所遵循的算法有资格获得 CPU 吗?
-
..取决于算法。一个新线程可能会在创建时获得“一次性”优先级提升,但如果还有更多或同样多的更高优先级的就绪/运行线程比核心数量多,那么它可能不会直接成为核心。
-
TBH,您的问题还不是很清楚:(当系统调用或硬件中断/驱动程序更改就绪/正在运行的线程集时,调度程序运行,因此允许进入内核并允许内核代码运行。如果没有系统调用和中断,则内核代码,包括它的调度程序/调度程序,根本不会执行 - 不需要它。
标签: operating-system scheduling