主观题:h666.若磁盘的每个磁道分成9个块,现有一文件共有A、B、…、H、I 9个记录,每个记录的大小与盘块大小相等,设磁盘转速为27
若磁盘的每个磁道分成9个块,现有一文件共有A、B、…、H、I 9个记录,每个记录的大小与盘块大小相等,设磁盘转速为27ms/转,每读出一块后需要2ms的处理时间。若忽略其他辅助时间,试问:
(1)如果顺序存放这些记录并顺序读取,处理该文件需要多少时间?
(2)如果顺序读取该文件,记录如何存放处理时间最短?
答案:解:
由条件可知,磁盘转速为每转27ms,每磁道存放9个记录,因此读出1个记录的时间为:
27/9=3ms
(1)读出并处理记录A需要5ms,此时磁头已移到记录B的中间,因此为了读记录B,必须再转将近一圈(从记录B的中间转到记录B的开头,即读出记录A后,要经27ms才能再读记录B)。后续7个记录的读取及处理时间与此相同,但最后一个记录读取与处理时间只需5ms。于是,处理9个记录的总时间为(假定开始时磁头在记录A的开头): (5分)
8×27+9×3+2=245ms
(2)由于读出并处理一个记录需要5ms,当读出并处理记录A时,不妨假设记录A存放在第一个磁盘块中,磁头已移到第2个盘块中间,为了能顺利读到记录B,应该将它存放在第3个盘块中,即应将记录按如下表所示顺序存放:

这样,处理一个记录并将磁头移到下一个记录的时间是: (5分)
读出时间+处理时间+等待时间=3+2+1=6 ms
所以,处理9个记录的总时间为:6×8+5=53 ms
(1)如果顺序存放这些记录并顺序读取,处理该文件需要多少时间?
(2)如果顺序读取该文件,记录如何存放处理时间最短?
答案:解:
由条件可知,磁盘转速为每转27ms,每磁道存放9个记录,因此读出1个记录的时间为:
27/9=3ms
(1)读出并处理记录A需要5ms,此时磁头已移到记录B的中间,因此为了读记录B,必须再转将近一圈(从记录B的中间转到记录B的开头,即读出记录A后,要经27ms才能再读记录B)。后续7个记录的读取及处理时间与此相同,但最后一个记录读取与处理时间只需5ms。于是,处理9个记录的总时间为(假定开始时磁头在记录A的开头): (5分)
8×27+9×3+2=245ms
(2)由于读出并处理一个记录需要5ms,当读出并处理记录A时,不妨假设记录A存放在第一个磁盘块中,磁头已移到第2个盘块中间,为了能顺利读到记录B,应该将它存放在第3个盘块中,即应将记录按如下表所示顺序存放:

这样,处理一个记录并将磁头移到下一个记录的时间是: (5分)
读出时间+处理时间+等待时间=3+2+1=6 ms
所以,处理9个记录的总时间为:6×8+5=53 ms