加尔文的操作系统教科书
“如果就绪队列中有n个进程,时间量为q,
然后每个进程得到1/n的cpu时间,以最多q个时间单位为单位。
每个进程必须等待不超过(n-1)x q时间单位,直到其
下一次量子。例如,有5个进程,时间量为20
毫秒,每个进程每100毫秒将达到20毫秒。”
对吗?如果CPU在执行这些进程时发生中断会发生什么?一个过程可能需要等待更长的时间,或者我遗漏了一些显而易见的东西?
最佳答案
这取决于中断是否改变了准备好的线程集、正在使用的调度算法、核心的可用性和其他东西。
或者我遗漏了一些显而易见的东西?
可能是现代的抢占式调度操作系统将核心上的CPU执行作为一个资源来管理,而该资源只提供给可以使用它的线程。中断(系统调用和硬件中断)是可以更改就绪线程集的事件。定时器中断只是其中之一。
将注意力集中在诸如“quanta”之类的术语上可能会导致误解,即预适应调度器如何将核心上的CPU执行作为资源来处理。
如果在CPU执行这些命令时发生中断会发生什么?
过程。进程可能需要等待更长的时间
是的,可能。如果中断(系统调用或通过驱动程序的硬件中断)改变了准备好的线程集,调度算法将运行,并可能决定抢占中断前正在运行的线程之一,而使用刚刚准备好的线程。显然,抢占的线程在被另一个中断再次运行之前不能前进,因此,是的,进程可能需要等待更长的时间。