什么在 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。
你好我是计算机编程专业的本科生
我选择操作系统 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。