CSCAN 磁盘调度
CSCAN 是 SCAN 的改进版本,到边界后快速返回起点,提供更均匀的等待时间。
#type / concept
#status / evergreen
#resource / operating-system
[!info] related notes
CSCAN 磁盘调度
一句话定义
CSCAN(Circular SCAN,循环扫描)是 SCAN 的改进版本,磁头只沿一个方向扫描,到达边界后快速返回起点(不服务回程请求),然后重新开始扫描。
核心机制
- 单向服务:只在一个方向上服务请求
- 快速回程:到达边界后直接跳回起点,不服务
- 更公平:提供更均匀的等待时间
- 消除了 SCAN 中两端请求的不公平性
与 SCAN 的区别
- SCAN:到达边界后反向服务回程
- CSCAN:到达边界后快速跳回起点,不服务回程
例题
题目:
- 磁头初始位置:53
- 请求序列:98, 183, 37, 122, 14, 124, 65, 67
- 磁道范围:0-199
- 初始方向:向磁道号增大方向(向右)
- 假设边界为 199
服务顺序推导:
- 从 53 向右移动,服务途经请求:65, 67, 98, 122, 124, 183
- 到达边界 199
- 快速跳回起点 0(不服务)
- 从 0 继续向右扫描,服务剩余请求:14, 37
服务顺序:53 → 65 → 67 → 98 → 122 → 124 → 183 → 199 → 0 → 14 → 37
计算过程:
| 步骤 | 当前位置 | 目标位置 | 移动距离 |
|---|---|---|---|
| 1 | 53 | 65 | |
| 2 | 65 | 67 | |
| 3 | 67 | 98 | |
| 4 | 98 | 122 | |
| 5 | 122 | 124 | |
| 6 | 124 | 183 | |
| 7 | 183 | 199 | |
| 8 | 199 | 0 | |
| 9 | 0 | 14 | |
| 10 | 14 | 37 |
总寻道距离 = 12 + 2 + 31 + 24 + 2 + 59 + 16 + 199 + 14 + 23 = 382
平均寻道距离 = 382 / 8 = 47.75
边界与易混淆点
- CSCAN 回程距离计入总寻道距离(跳回起点的 199 步)
- CSCAN 比 SCAN 更公平,但总寻道距离可能更大
- 与 CLOOK 对比:CLOOK 只到最远请求,不走边界
- CSCAN 适合负载较重的系统