Skip to content

2018年 408 操作系统 第 30 题

操作系统2018年选择题2分

题目

系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁臂黏着。下列磁盘调度算法中,不会导致磁臂粘着的是( )。

错因

B

只看了"最短寻道"的高效面,没意识到它的"局部贪心"会出大问题。如果某个进程持续往同一个磁道发请求(比如反复写一个热点文件),SSTF 每次都会优先选这个最近的请求——磁头就粘在这磁道附近来回服务,远端的请求一直得不到机会,正是磁臂粘着的典型成因。

C

被 SCAN"会扫到端点"这个直觉骗了,以为只要不停地走就不会卡。但 SCAN 在到达一端之前会响应沿途新到来的请求——如果某个磁道在磁头当前方向上持续被请求,磁头就会"被拉住"在这一段附近反复服务,靠近端点的远端请求迟迟不能到。换句话说,SCAN 也可能粘着,只是比 SSTF 缓和一些。

D

CSCAN 比 SCAN 更公平(单方向扫描完再快速回到起点),看起来"不会卡",于是选了 D。但 CSCAN 同样不能拒绝沿途新请求——单方向扫描过程中如果某磁道持续来请求,磁头依旧会反复留在那一带服务,只不过到达端点后会跳到另一头重启。粘着的本质("贪心地优先就近请求")没消除。

总解析

磁臂粘着的根本原因:调度算法让磁头位置/方向决定下一个服务谁——只要有进程持续往某个磁道发请求,磁头就会被它吸住。

算法选择规则是否依赖磁头当前位置会粘着?
FCFS按请求到达顺序服务不依赖不会
SSTF选离磁头最近的请求依赖会(最严重)
SCAN沿当前方向就近选依赖
CSCAN单方向扫描就近选,到端点折回起点依赖

判定原则:算法越"贪近",粘着越严重;FCFS 完全按时间排队、不看磁头位置,因此不可能粘着。

FCFS 的代价是寻道时间长(请求在盘面上跳来跳去),但公平性给到了——每个请求都按到达顺序拿到服务,热点磁道再多请求也得排队。

最终答案是 A

最后更新:

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

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