您好我是计算机编程的本科生
我接受操作系统类,我对MLFQ调度有疑问
假设MLFQ有两个就绪队列,并且他们使用循环调度方法,其中时间量为3秒和5秒
当然Q1的优先级更高。
然后假设Q1中没有就绪进程,因此可以在CPU上分配Q2中的进程。
然而,完成IO绑定突发的进程返回到Q1,并且没有完成属于Q2的CPU处理(仅3秒)
在这种情况下,会发生什么?
Q1的流程现在是否抢占了CPU?
现在CPU中的进程(来自Q2)是否在CPU上分配,直到达到它的时间量(仍需要2秒)?
感谢您的阅读。
答案 0 :(得分:0)
在I/O burst
中完成Q1
后到达的流程将抢占Q2
中的流程。引用Galvin,Gagne和Silberchatz的操作系统原则:
到达Q1的流程将抢占Q2中的流程。一个过程 在Q1中,反过来会被到达Q0的过程抢占(如果是Q0) 存在)。
因此,任何到达higher priority Q
的进程都将抢占优先级较低Q
的进程,即使未达到较低进程的时间量。只要优先级较高的ready Q
为空,进程就会获得CPU。