2010 操作系统 外存空间管理磁盘调度算法位图 解答题
第 45 题

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

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

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

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

外存空间管理 磁盘调度算法

[tag_link]

1)用 位图 表示磁盘的空闲状态。每位表示一个磁盘块的空闲状态,共需要 16384/32 = 512字 = 512×4字节 = 2KB,正好可放在系统提供的内存中。

2)采用 C-SCAN 调度算法,访问磁道的顺序和移动的磁道数见下表。

被访问的下一个磁道号移动距离(磁道数)
12020
3090
5020
9040

移动的磁道数为 20+90+20+40 = 170,故总的移动磁道时间为 170ms。由于转速为 6000rpm,则平均旋转延迟为 5ms,总的旋转延迟时间 = 20ms。由于转速为 6000rpm,则读取一个磁道上一个扇区的平均读取时间为 0.1ms,总的读取扇区的时间为 0.4ms。综上,读取上述磁道上 所有扇区所花的总时间为 190.4ms。

3)采用 FCFS 调度策略更高效。因为 Flash 半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按 I/O 请求的先后顺序服务。