什么在 MLFQ 上有更高的优先级?

What has higher priority on MLFQ?

你好我是计算机编程专业的本科生

我选择操作系统 class,我对 MLFQ 调度有疑问

假设MLFQ有两个就绪队列,它们都采用时间片分别为3秒和5秒的round-robin调度方式

当然Q1的优先级更高

那么假设Q1没有ready进程,那么Q2的进程可以分配到CPU。

但是,完成 IO bound burst returns 到 Q1 的进程,以及 CPU 中属于 Q2 的进程未完成(仅 3 秒后)

在这种情况下,会发生什么?

Q1 中的进程现在是否抢占了 CPU?

或者现在 CPU 中的进程(来自 Q2)在 CPU 上分配,直到达到它的时间量(仍然需要 2 秒)?

感谢阅读

Q1中完成I/O burst后到达的进程将抢占Q2中的进程。引用 Galvin、Gagne 和 Silberchatz 的操作系统原理

A process that arrives in Q1, will preempt a process in Q2. A process in Q1 will in turn be preempted by a process arriving in Q0(if Q0 exists).

SO,任何到达 higher priority Q 的进程都将抢占优先级较低的进程 Q,即使未达到较低优先级进程的时间片也是如此。只要更高优先级的 ready Q 为空,进程就会拥有 CPU。