假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录 16 384个磁盘块的空闲状态。
1)请说明在上述条件下如何进行磁盘块空闲状态的管理。
2)设某单面磁盘旋转速度为6000r/min,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如图B-5所示),磁道号请求队列为50,90,30,120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多少时间?要求给出计算过程。
3)如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD等),是否有比CSCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。
图B-5
1) 用位图表示磁盘的空闲状态。每位表示一个磁盘块的空闲状态,共需要16 384/32=512个字= 512×4个字节=2KB,正好可放在系统提供的内存中。
2)采用CSCAN调度算法,访问磁道的顺序和移动的磁道数见表B-7。
移动的磁道数为20+90+20+40=170,故总的移动磁道时间为170ms。
由于转速为6000r/min,则平均旋转延迟为5ms,总的旋转延迟时间=20ms。
由于转速为6000r/min,则读取一个磁道上一个扇区的平均读取时间为0.1ms,总的读取扇区的时间为0.4ms。
综上,读取上述磁道上所有扇区所花的总时间为190.4ms。
被访问的下一个磁道号
移动距离(磁道数)
120
20
30
90
50
20
90
40
表B-7