【答案解析】[分析] 因为系统使用的是单缓冲区,且顺序处理9个记录,每个记录处理时间为3ms,加上读/写时间,总的时间就超过3ms。而磁盘旋转一圈的时间为27ms,也就是说,在系统读取第0个记录后,正在处理的过程中,磁盘已经旋过了第1个记录。那么,要读取第1个记录,就需要磁盘再次旋转到第1个记录(即磁盘旋转1圈后,27ms+3ms=30ms)。同理,要读取第2个记录,也需要等30ms。这样,要读取后面8个记录,需要8×30ms=240ms,同时加上处理第0个记录的时间(3ms)和处理第8个记录的时间(3ms),共需246ms。
要想节约时间,可以把记录错开存放,如表2-10所示。
表2-10 错开存放的记录
|
物理块 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
逻辑记录 | R0 | R5 | R1 | R6 | R2 | R7 | R3 | R8 | R4 |
这样,就可以在磁盘旋转2圈内完成所有记录的处理,时间为54ms。要注意的是,最后处理的记录R8不是最后一个磁盘块,所以不需要旋转到最后1个物理块。也就是说,第2圈的旋转只需要24ms就到达R8了。但是,因为要加上R8的处理时间3ms,所以,总时间仍然为54ms。