Appearance
多级队列调度
考情分析
多级队列调度在 408 真题中出现较少,但与多级反馈队列一起理解是考试基础。属于 🔥 中低频考点。
前面的算法用一个队列管所有进程,但系统进程和批处理进程的需求完全不同,混在一起用同一套规则不合理。多级队列的做法是"分班管理",不同类型的进程各进各的队列。
算法规则
多级队列调度(Multi-Level Queue, MLQ)将就绪队列拆分为多个独立的子队列,不同类型的进程进入不同的队列。
关键设计
| 设计决策 | 选项 |
|---|---|
| 队列间调度 | 固定优先级:高优先级队列非空就先调度;或时间片划分:各队列按比例分配 CPU 时间 |
| 队列内调度 | 每个队列可以使用不同的算法(如队列1用FCFS,队列2用RR) |
| 进程分配 | 进程被永久分配到一个队列,不能在队列间移动 |
时间片划分方案
为避免低优先级队列饥饿,可以按比例分配 CPU 时间:
| 队列 | CPU 时间比例 | 队列内算法 |
|---|---|---|
| 系统进程 | 40% | FCFS |
| 交互进程 | 30% | RR (q=2) |
| 批处理 | 30% | FCFS |
交互可视化
优缺点
| 优点 | 缺点 |
|---|---|
| 不同类型进程用不同策略,灵活 | 进程不能在队列间移动,不够灵活 |
| 各队列独立管理 | 固定优先级方案可能导致低优先级队列饥饿 |
考研高频考点
- 🔥🔥 多级队列中进程不能在队列间移动(与多级反馈队列的关键区别)
- 🔥 各队列可以使用不同的调度算法
- 🔥 固定优先级 vs 时间片划分两种队列间调度方式
多级队列的问题是进程被"定死"在一个队列里不能移动。下一篇看多级反馈队列如何通过队列间升降级来解决这个问题。