CLOOK 磁盘调度
CLOOK 是 CSCAN 的改进版本,磁头只到最远请求位置后快速跳回最近请求,不走到磁盘边界。
#type / concept
#status / evergreen
#resource / operating-system
[!info] related notes
CLOOK 磁盘调度
一句话定义
CLOOK(Circular LOOK,循环 LOOK)是 CSCAN 的改进版本,磁头沿一个方向服务请求,只到最远请求位置后快速跳回该方向最近的请求继续服务,不走到磁盘边界。
核心机制
- 只到最远请求:不走到磁盘边界,节省空转
- 快速回程:跳回时不服务请求
- 更公平:比 LOOK 更均匀的等待时间
- 最实用:实际应用中最常用的算法之一
与 CSCAN 的区别
- CSCAN:到达磁盘边界后跳回起点
- CLOOK:只到最远请求位置后跳回最近请求
例题
题目:
- 磁头初始位置:53
- 请求序列:98, 183, 37, 122, 14, 124, 65, 67
- 磁道范围:0-199
- 初始方向:向磁道号增大方向(向右)
服务顺序推导:
- 从 53 向右移动,服务途经请求:65, 67, 98, 122, 124, 183
- 到达该方向最远请求 183
- 快速跳回该方向最近请求 14
- 继续向右服务剩余请求:37
服务顺序:53 → 65 → 67 → 98 → 122 → 124 → 183 → 14 → 37
计算过程:
| 步骤 | 当前位置 | 目标位置 | 移动距离 |
|---|---|---|---|
| 1 | 53 | 65 | |
| 2 | 65 | 67 | |
| 3 | 67 | 98 | |
| 4 | 98 | 122 | |
| 5 | 122 | 124 | |
| 6 | 124 | 183 | |
| 7 | 183 | 14 | |
| 8 | 14 | 37 |
总寻道距离 = 12 + 2 + 31 + 24 + 2 + 59 + 169 + 23 = 322
平均寻道距离 = 322 / 8 = 40.25
边界与易混淆点
- CLOOK 回程距离计入总寻道距离(从 183 跳到 14 的 169 步)
- CLOOK 比 LOOK 更公平,但实现稍复杂
- 实际应用中 CLOOK 是最常用的算法之一
- 与 LOOK 对比:LOOK 双向服务,CLOOK 只单向服务