Skip to content

2015年 408 操作系统 第 32 题

操作系统2015年选择题2分

题目

某硬盘有 200 个磁道(最外侧磁道号为 0),磁道访问请求序列为:130,42,180,15,199,当前磁头位于第 58 号磁道并从外侧向内侧移动。按照 SCAN 调度方法处理完上述请求后,磁头移过的磁道数是( )。

错因

A

可能只算了从 58 → 199 → 15 一段路径,但算成了"绝对差" 199-15=184,再加 58→199=141,得到 184+141=325 中漏减某段或方向算反。208 多半是从 58 开始把请求按 SSTF 思路就近选择得到的某段路径,没遵循 SCAN 的"先一头扫到底再折返"。

B

可能误以为 SCAN 要扫到磁道边界 199(最内)和 0(最外),算出 (199-58) + 199 = 340 之类,再剪枝。或者把折返点算到了磁道 0 而不是序列里最远的请求 15。SCAN 算法实际只需要扫到当前方向上最后一个有请求的磁道就可以折返,不一定走到边界。

D

可能把 SCAN 算成了 LOOK + 边界——既扫到 199 又折返到 0,再回到某处。或者方向错——把"从外向内"算成"从内向外",先服务 42、15 再折返。把方向看反就会得到偏大的数。

总解析

SCAN(电梯算法):磁头沿当前方向走,一路服务沿途请求;当本方向没更远的请求时,折返到反方向继续服务。题目特别要看一下:是 SCAN(扫到边界)还是 LOOK(扫到最远请求就折返)?408 教材里 SCAN 通常按 LOOK 行为来算,只扫到最远请求而不是磁道边界。

梳理请求:130, 42, 180, 15, 199。当前 58 号,方向从外侧向内侧(即磁道号变大方向)。

当前方向(向内)上的请求(磁道号 ≥ 58):130, 180, 199 → 按从近到远依次服务

反方向(向外)上的请求(磁道号 < 58):42, 15

SCAN 路径

58 → 130 → 180 → 199(向内扫到最远请求 199)
   → 42 → 15(折返向外扫到最远请求 15)

逐段算磁道数

起 → 终磁道数
58 → 199
199 → 15
合计141 + 184 = 325

关键点:折返发生在 199(当前方向最远请求),不是磁道边界 199。这道题里恰好最远请求 = 最内侧磁道 199,看不出 SCAN 和 LOOK 的差别;如果题目是 180 而不是 199,SCAN 会扫到磁道 199 才折返、LOOK 只扫到 180,结果不同。本题按教材 SCAN 写法等价于 LOOK。

最终答案是 C

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数