Appearance
题目
某系统中磁盘的磁道数为 200(0~199),磁头当前在 184 号磁道上。用户进程提出的磁盘访问请求对应的磁道号依次为 184, 187, 176, 182, 199。若采用最短寻道时间优先调度算法(SSTF)完成磁盘访问,则磁头移动的距离(磁道数)是( )。
错因
A
照请求到达顺序算 FCFS:184→187→176→182→199,距离 0+3+11+6+17=37。这就是把 SSTF 当 FCFS 做了。SSTF 的核心是每一步都挑离当前磁头最近的请求,跟请求先来后到的顺序无关。
B
可能在某一步选最近时挑错了候选。比如第二步在 (187, 176, 182, 199) 里选 182(差 2)正确,第三步在 (187, 176, 199) 里挑 187 是正确的(差 5),但 176 → 199 这段算成了 22 而不是 23,凑出 38。算术细节没扣紧。
D
把 184→184 这段误算成 1(觉得"再访一次也算一道距离"),加进去就是 41+1=42。但 184 已经在磁头当前位置上,原地访问寻道距离是 0,不该多加 1。"在原地的请求"在 SSTF 里直接秒处理、不增加移动距离。
总解析
SSTF(最短寻道时间优先)的规则:每一步看队列里所有未完成请求,挑距离磁头最近的那个跑过去。
初始磁头在 184,未处理请求集 {184, 187, 176, 182, 199}。
| 步骤 | 当前磁头 | 候选距离(绝对值) | 选中 | 移动距离 |
|---|---|---|---|---|
| 0 | 184 | 184(0)、187(3)、176(8)、182(2)、199(15) | 184 | 0 |
| 1 | 184 | 187(3)、176(8)、182(2)、199(15) | 182 | 2 |
| 2 | 182 | 187(5)、176(6)、199(17) | 187 | 5 |
| 3 | 187 | 176(11)、199(12) | 176 | 11 |
| 4 | 176 | 199(23) | 199 | 23 |
总移动距离:
最终答案是 C。