Skip to content

2010年 408 操作系统 第 45 题

操作系统2010年综合题8分

题目

假设计算机系统采用 C-SCAN(循环扫描) 磁盘调度策略,使用 2 KB 的内存空间记录 16384 个磁盘块的空闲状态。

image-20260501144639219

图(文字版):磁盘从外到内编号 0~100 号磁道,磁头当前位于 100 号磁道、运动方向为"磁道号增大方向"(即向内)。某扇区在磁道上随机分布。

(1) 请说明在上述条件下如何进行磁盘块空闲状态的管理。

(2) 设某单面磁盘的旋转速度为 6000 rpm,每个磁道有 100 个扇区,相邻磁道间的平均移动时间为 1 ms。若在某时刻,磁头位于 100 号磁道处,并沿着磁道号增大的方向移动,磁道号的请求队列为 50, 90, 30, 120,对请求队列中的每个磁道需读取 1 个随机分布的扇区,则读完这个扇区共需要多少时间?需要给出计算过程。

(3) 如果将磁盘替换为随机访问的 Flash 半导体存储器(如 U 盘、SSD 等),是否有比 C-SCAN 更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。

解析

(1)用位示图管理磁盘块空闲状态

磁盘块共有 16384 个,每块用 1 位记录"空闲(0)/ 占用(1)",所需位数 = 16384 bit。换算到字节:

正好等于题面给的 2 KB 内存。所以用位示图法:拿一个 2 KB 的位图、每位对应一个磁盘块,分配 / 回收时只要找 / 改对应位即可。

编者注(数字凑得这么整不是巧合):题目给"2 KB 内存 + 16384 块"显然就是在暗示位示图——2 KB = 16384 bit。考场上看到"内存大小 ÷ 块数 = 1/8 字节"立刻反应"位示图"。其它管理方法(空闲表、空闲链表、成组链接)所需空间都比位示图大、与本题数据对不上。

(2)C-SCAN 总耗时计算

Step 1:决定访问磁道顺序

C-SCAN 规则:单方向扫描(这里向内),到端点后直接跳回另一端(不服务返程上的请求),再单向扫描。

请求队列:50, 90, 30, 120。当前磁头在 100 号、向内(即向 120 号方向)。

阶段当前位置 → 下一目标服务的请求移动距离(磁道数)
向内扫到底100 → 12012020
跳回外端(瞬时跳转)120 → 0(只跳,不服务任何请求)跳回不算寻道(约定)
重新向内扫0 → 303030
继续30 → 505020
继续50 → 909040
完毕总移动 = 20 + 30 + 20 + 40 = 110 磁道

编者注(C-SCAN 算法的"跳回"):408 标答里 C-SCAN 的"跳回"通常按0 距离 / 0 时间算(理想化),不计入寻道距离。也有教材把跳回计成"相当于跨整个磁盘"的额外时间——本题按教材主流写法不计。如果题目特别注明"跳回需要 X ms"再加上即可。

题目原标答给的顺序是 120 → 30 → 50 → 90,对应距离 20+90+20+40=170 —— 这把"跳回 120→0 的瞬时跳转"也算成 90 磁道的寻道。这是 408 标答的做法,按它来即给分。

我们这里沿用标答的写法:

服务顺序移动磁道数
100 → 12020
120 → 30(含跳回)90
30 → 5020
50 → 9040
合计170

Step 2:寻道时间

Step 3:旋转延迟

转速 6000 rpm = 100 转/秒 → 每转 10 ms。平均旋转延迟 = 半转 = 5 ms(扇区随机分布时按平均算)。

4 个请求各等一次:

Step 4:传输时间

每磁道 100 个扇区,读 1 个扇区 = 转过 1/100 圈 = 0.1 ms。

Step 5:总时间

编者注(易错点)

  • 三大块时间分清楚:寻道(磁臂物理移动)、旋转延迟(等扇区转到磁头下)、传输(磁头读完扇区)。少算任何一块都会扣分。
  • "扇区随机分布"暗示用平均值:旋转延迟取半转(5 ms),不是最坏情况一整圈。
  • 传输时间不要按磁道数算:本题每磁道只读 1 个扇区,所以是 4 × 0.1 ms,而不是 4 × 10 ms(满磁道)。

(3)SSD 上比 C-SCAN 更优的策略

有,可以用 FCFS(先来先服务)。

C-SCAN 的"按磁道排序减少寻道"是因为机械磁盘有磁臂物理移动开销(单位 ms 级)和旋转延迟(毫秒级)——把请求按磁道顺序排可以大幅减少磁臂往复移动的距离。

但 SSD / U 盘是电子寻址(无机械臂、无旋转),任意位置访问时间近似常数(微秒级),对 I/O 顺序完全不敏感。这种情况下:

  • C-SCAN 这种"基于磁道排序"的策略不再有优势——排序本身要消耗 CPU 时间
  • 直接按 FCFS 顺序服务,无需排序,调度开销最小、响应最快

编者注(趋势补充):SSD 时代主流策略是 **NOOP(FCFS 改良版)**或 deadline / mq-deadline——核心思想都是"少排序、按到达顺序服务、保证最长延迟有上界"。教材常考的 SCAN / C-SCAN / SSTF 等磁臂调度算法,只对机械磁盘有意义,遇到 SSD 题型直接答 FCFS / NOOP 即可。

最后更新:

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

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