2.7.2 磁盘管理-02
本课核心知识点整理
本节导学
磁盘调度题的本质是“磁头按什么顺序移动”。题目通常给当前磁头位置、请求柱面序列,有时还会给当前移动方向,然后让你求响应序列或总移动道数。算法名背错,后面的顺序和距离都会错。
做这类题时,先画一条数轴。把当前磁头位置标出来,再把所有请求柱面号标出来。然后按算法规则移动磁头,每走一段就累加距离。
常见磁盘调度算法
| 算法 | 核心思想 |
|---|---|
| FCFS | 按请求到达顺序服务 |
| SSTF | 每次选择离当前磁头最近的请求 |
| SCAN | 像电梯一样沿一个方向扫描,到端点再返回 |
| CSCAN | 只按一个方向服务,到端点后回到另一端 |
| LOOK | 不必走到物理端点,到该方向最后一个请求就返回 |
| CLOOK | CSCAN 的 LOOK 版本 |
FCFS 简单但移动距离可能大;SSTF 平均移动距离小但可能让远端请求饥饿;SCAN/CSCAN 更公平;LOOK/CLOOK 减少无效端点移动。
算法之间的取舍
| 算法 | 优势 | 局限 | 记忆方式 |
|---|---|---|---|
| FCFS | 最公平、最简单 | 磁头可能大幅来回移动 | 按请求顺序排队 |
| SSTF | 通常减少平均寻道距离 | 远端请求可能饥饿 | 每次找最近 |
| SCAN | 避免频繁折返,较公平 | 可能走到没有请求的端点 | 电梯到端点再返 |
| CSCAN | 等待时间更均匀 | 回卷移动可能不服务请求 | 单向扫描循环 |
| LOOK | 比 SCAN 少走无效端点 | 仍需看方向 | 看到最后一个请求就返 |
| CLOOK | 比 CSCAN 少走无效端点 | 仍有循环回跳 | 单向 LOOK |
SCAN、CSCAN、LOOK、CLOOK 的关键差别
SCAN 像电梯:沿当前方向服务,直到到达磁盘端点,再反向。LOOK 更聪明:如果当前方向已经没有更多请求,就不必走到物理端点,直接反向。
CSCAN 只按一个方向服务,到端点后回到另一端继续同向服务。CLOOK 是 CSCAN 的优化版:只回到另一端有请求的位置,不走无效端点。
做题路线
- 标出当前磁头位置。
- 标出所有请求柱面号。
- 若算法依赖方向,先确定当前移动方向。
- 按算法列服务顺序。
- 逐段计算移动距离并累加。
- 注意 LOOK/CLOOK 不走无请求的物理端点,SCAN/CSCAN 通常走到端点。
例题
单选
每次选择距离当前磁头最近的请求,是哪种算法?
单选
LOOK 算法相对 SCAN 的主要区别是:
单选
SCAN 类磁盘调度题首先要确认:
自查要点
- SSTF 为什么可能造成饥饿?
- SCAN 和 LOOK 的区别是什么?
- CLOOK 为什么比 CSCAN 少走无效路径?