Skip to content
难度基础(★)
建议时长45分钟

2.7.2 磁盘管理-02

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

本节导学

磁盘调度题的本质是“磁头按什么顺序移动”。题目通常给当前磁头位置、请求柱面序列,有时还会给当前移动方向,然后让你求响应序列或总移动道数。算法名背错,后面的顺序和距离都会错。

做这类题时,先画一条数轴。把当前磁头位置标出来,再把所有请求柱面号标出来。然后按算法规则移动磁头,每走一段就累加距离。

常见磁盘调度算法

算法核心思想
FCFS按请求到达顺序服务
SSTF每次选择离当前磁头最近的请求
SCAN像电梯一样沿一个方向扫描,到端点再返回
CSCAN只按一个方向服务,到端点后回到另一端
LOOK不必走到物理端点,到该方向最后一个请求就返回
CLOOKCSCAN 的 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 的优化版:只回到另一端有请求的位置,不走无效端点。

做题路线

  1. 标出当前磁头位置。
  2. 标出所有请求柱面号。
  3. 若算法依赖方向,先确定当前移动方向。
  4. 按算法列服务顺序。
  5. 逐段计算移动距离并累加。
  6. 注意 LOOK/CLOOK 不走无请求的物理端点,SCAN/CSCAN 通常走到端点。

例题

单选
每次选择距离当前磁头最近的请求,是哪种算法?
单选
LOOK 算法相对 SCAN 的主要区别是:
单选
SCAN 类磁盘调度题首先要确认:

自查要点

  1. SSTF 为什么可能造成饥饿?
  2. SCAN 和 LOOK 的区别是什么?
  3. CLOOK 为什么比 CSCAN 少走无效路径?