问答题 旋转型存储设备上信息的优化分布能减少若干输入/输出服务的总时间。例如,有10个记录A,B,…,J存放在某磁盘的某一磁道上,假定这个磁道划分成10个扇区,每个扇区存放一个记录,安排如下表l所示。现在要从该磁道上顺序地将A~J的10个记录读出,如果磁盘旋转一周需花费20ms,处理程序每读出一个记录后花4ms进行处理。试问处理完10个记录的总时间是多少(从找到A记录开始计算)?为了缩短处理时间,应该进行分布优化,试问应如何安排这些记录?并计算优化后处理的总时间(从找到A记录开始计算)。
扇区 1 2 3 4 5 6 7 8 9 10
记录号 A B C D E F G H I J
【正确答案】
【答案解析】根据磁盘旋转一周所花费的时间得知读取一个扇区所花的时间是20(ms/周)÷10(扇区/周)=2(ms/扇区)。而处理扇区1的记录A需要4ms,因此当处理完这个扇区的数据之后,磁头已经转过了2个扇区,到达扇区4,因此还需要等待磁头旋转到扇区2(相隔8个扇区)。这样读取扇区2上记录B的旋转延迟为8×2=16(ms),读取时间为2ms,记录B的处理时间为16+2+4=22(ms)。依次类推,B,C,…,J记录的处理时间均为22ms,因此总的处理时间为6+9×22=204(ms)。
为了降低旋转延迟,应该采用如表的记录安排方式:
扇区 1 2 3 4 5 6 7 8 9 10
记录号 A H E B I F C J G D
此时因为不存在旋转延迟,因此总的处理时间为10×(2+4)=60(ms)。 [解析] 这是另一类考查磁盘调度方法的题目,它主要通过对旋转延迟的理解来解答。问题的关键在于扇区数据的处理时间与旋转速度之间的差异,这个差异决定了扇区与记录之间的对应关系。题目中记录处理时间与扇区读取时间正好是倍数关系,因此B~J记录的旋转延迟都为0,如果它们之间不是倍数关系,那么还应该计算旋转延迟。