问答题 假设磁盘的每个磁道分为9个块,现有一文件有A,B,…,I共9个记录,每个记录的大小与块的大小相等,设磁盘转速为27ms/转,每读出一块后需要2ms的处理时间,若忽略其他辅助时间,试问: (1)如果这些记录被顺序存放于一磁道上,文件处理程序顺序读取且顺序处理记录,处理文件要多少时间? (2)文件处理程序顺序读取且顺序处理记录,记录如何存放可使文件的处理时间最短?
【正确答案】(1)由题目所给条件可知,磁盘转速为27ms/转,因此读出1个记录的时间是27ms/9=3ms。读出并处理记录A需要:3ms+2ms=5ms,此时读写头已转到了记录B的中间,因此为了读出记录B,必须再转将近一圈(从记录B的中间到记录B,需要25ms)。后续7个记录的读取及处理与此相同,但最后一个记录的读取与处理只需5ms,于是处理9个记录的总时间为8×(25+3+2)ms+(3+2)ms=245ms。这里将旋转一周的时间算在了前一个读取单元中,即“读取A,旋转”看做一个单元,因此前8个的处理时间为30ms,最后一个为5ms。如果将旋转算在后一个读取单元,则处理A为5ms,后面8个为30ms,结果相同。
(2)由于读出并处理一个记录需要5ms,当读出并处理记录A时,不妨设记录A放在第1个盘块中,读写头已移动到第2个盘块的中间,为了能顺序读到记录B,应将它放到第3个盘块中,即应将记录按如下顺序存放,见下表。
记录存放顺序
盘块 1 2 3 4 5 6 7 8 9
记录 A F B G C H D I E
这样,处理一个记录并将磁头移动到下一记录的时间为3ms+2ms+1ms=6ms。所以,处理9个记录的总时间为6×8ms+5ms=53ms。
【答案解析】