【题目】
45.(7分)假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2 KB的内存空间记录16 384个磁盘块的空闲状态。
(1) 请说明在上述条件下如何进行磁盘块空闲状态的管理。
(2) 设某单面磁盘旋转速度为每分钟6 000转,每个磁道有100个扇区,相邻磁道间的平均移动时间为1 ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如下图所示),磁道号请求队列为50、90、30、120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区总共需要多少时间?要求给出计算过程。
(3) 如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD等),是否有比CSCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。
【答案要点】
(1) 用位图表示磁盘的空闲状态。每一位表示一个磁盘块的空闲状态,共需要16 384/32=512个字=512x4个字节=2 KB,正好可放在系统提供的内存中。
(2) 采用CSCAN调度算法,访问磁道的顺序为120、30、50、90,则移动磁道长度为170, 总的移动磁道时间为170 ms。
由于转速为6 000 r/m,则平均旋转延迟为5 ms,总的旋转延迟时间=20 ms。
由于转速为6 000 r/m,则读取一个磁道上一个扇区的平均读取时间为0.1 ms,总的读取扇区的时间为0.4 ms。
读取上述磁道上所有扇区所花的总时间为190.4 ms。
(3) 采用FCFS(先来先服务)调度策略更高效。因为Flash半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按I/O请求的先后顺序服务。