假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。
(1) 请说明在上述条件下如何进行磁盘块空闲状态管理。
(2) 设某单面磁盘旋转速度为每分钟6000转,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动,磁道号请求队列为50,90,30,120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这些扇区共需要多少时间要求给出计算过程。
参考答案:(1) 因为2×1024×8=16384,所以使用位示图法,每一位表示一个磁盘块是否空闲。
(2) 磁盘旋转速度为每分钟6000转,则转1圈需要0.01s(10ms);每个磁道有100个扇区则平均通过一个扇区需要0.0001s(0.1ms)。计算机系统采用CSCAN,即磁头从盘面上的一端向另一端移动,遇到请求立即服务,返回是直接快速移至起始端,而不服务于任何请求,如此往复地单向扫描并平均为各种请求服务。
在本题中,数据读取的总时间为“寻道时间+寻区时间+读数据时间”,由于题目要求“读取1个随机分布的扇区”,不妨假设取平均值,即寻区时间为5ms。根据这个原理,计算如下:
·100→120:20×1ms+5ms+0.1ms=25.1ms。
·0→30:30×1ms+5ms+0.1ms=35.1ms。
·30→50:20×1ms+5ms+0.1ms=25.1ms。
·50→90:40×1ms+5ms+0.1ms=45.1ms。
总时间为:25.1+35.1+25.1+45.1=130.4ms。
说明:以上时间不包括磁头“直接快速移至起始端”的时间。