【答案解析】[解析] 因为系统使用的是单缓冲区,且顺序处理9个记录,每个记录处理时间为3ms,加上读写时间,总的时间就超过3ms了。而磁盘旋转一圈的时间为27ms,也就是说,当系统读取第0个记录后,正在处理的过程中,磁盘已经旋过了第1个记录。那么,要读取第1个记录,就需要磁盘再次旋转到第1个记录(即磁盘旋转1圈后,27+3=30ms)。同理,要读取第2个记录时,也需要等30ms。这样,要读取后面8个记录,需要8×30=240ms,同时加上处理第0个记录的时间(3ms)和处理第8个记录的时间(3ms),共需246ms。
要想节约时间,可以把记录错开存放,如表所示。
{{B}}错开存放的记录{{/B}}
|
| 物理块 |
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。