假定某磁盘的旋转速度是每圈20ms,格式化后每个盘面被分成10个扇区,现有10个逻辑记录存储在同一磁道上,安排如下所示。
处理程序要顺序处理这些记录,每读出一个记录后处理程序要花4ms的时间进行处理,然后再顺序读下一个记录并处理,直到处理完这些记录,回答:
(1)顺序处理完这10个记录总共花费了多少时间?
(2)请给出一种记录优化分布的方案,使处理程序能在最短时间内处理完这10个记录,并计算优化分布时需要花费的时间。
【正确答案】:
(1)由磁盘转速可知,读一个记录要花2ms的时间。当花了2ms的时间读出第1个记录,并花费4ms的时间进行处理后,第4个记录的位置已经转到读写磁块下面。为了顺序处理第2个记录,必须等待磁盘第2个记录旋转到磁头位置下面,即要16ms的延迟时间。于是,处理这10个记录和要求花费时间为:
10×(2+4)+9×16=204(ms)。
(2)重新安排这10个逻辑记录,使得处理程序读出一个记录并处理结束时正好使下一个记录能旋转到磁头位置下,那么,处理程序不必等待。处理程序每读出一个记录并处理后就能立即读出下一个记录来处理,这样,处理这10个逻辑记录花费的时间最短。10个逻辑记录的安排可如下调整:
读出并处理完这10个逻辑记录所需时间为:(2+4)×10=60(ms)。P262