Skip to content

多级队列调度

考情分析

多级队列调度在 408 真题中出现较少,但与多级反馈队列一起理解是考试基础。属于 🔥 中低频考点。

前面的算法用一个队列管所有进程,但系统进程和批处理进程的需求完全不同,混在一起用同一套规则不合理。多级队列的做法是"分班管理",不同类型的进程各进各的队列。

算法规则

多级队列调度(Multi-Level Queue, MLQ)将就绪队列拆分为多个独立的子队列,不同类型的进程进入不同的队列。

关键设计

设计决策选项
队列间调度固定优先级:高优先级队列非空就先调度;或时间片划分:各队列按比例分配 CPU 时间
队列内调度每个队列可以使用不同的算法(如队列1用FCFS,队列2用RR)
进程分配进程被永久分配到一个队列,不能在队列间移动

时间片划分方案

为避免低优先级队列饥饿,可以按比例分配 CPU 时间:

队列CPU 时间比例队列内算法
系统进程40%FCFS
交互进程30%RR (q=2)
批处理30%FCFS

交互可视化

加载可视化中...

优缺点

优点缺点
不同类型进程用不同策略,灵活进程不能在队列间移动,不够灵活
各队列独立管理固定优先级方案可能导致低优先级队列饥饿

考研高频考点

  • 🔥🔥 多级队列中进程不能在队列间移动(与多级反馈队列的关键区别)
  • 🔥 各队列可以使用不同的调度算法
  • 🔥 固定优先级 vs 时间片划分两种队列间调度方式

多级队列的问题是进程被"定死"在一个队列里不能移动。下一篇看多级反馈队列如何通过队列间升降级来解决这个问题。