分析题目:
磁盘旋转周期为33ms,因此磁盘旋转一周时间为33ms,磁盘总共有11个物理块,所以每个物理块需要的读取时间为3ms;
磁头当前在R0开始处,所以数据从R0开始读取;
使用单缓冲区顺序处理记录,所以需要一条数据读取完毕并且处理完毕后才能读取下一条数据;
那么处理这11条记录最长时间为366ms
磁头首先读取出R0放在缓冲区处理,3ms之后R0读取完毕放入缓冲区,此时磁头位于R1的开始处,但是由于单缓冲区所以此时无法直接读取R1并对R1进行操作,于是磁盘继续转动,3ms之后R0处理完毕,此时磁头位于R2的开始处,并非我们需要处理的R1,因此磁盘继续转动寻找R1,直到再转一圈(33ms)到达R1的开始处开始读取R1(3ms)。
因此R0到R9需要的时间为(33+3)*10=360ms;剩余R10需要的时间为读取3ms加处理3ms,所以总处理时间为360+6=366ms;
处理11条记录的最短时间为66ms
在对数据进行重新排列后此时磁盘上数据的存储顺序为
1 2 3 4 5 6 7 8 9 10 11
R0 R6 R1 R7 R2 R8 R3 R9 R4 R10 R5
此时开始处理,磁头从R0开始处读取,读取(3ms)完毕后放入缓冲区处理(3ms),此时磁盘继续转动,R0处理完毕时此时磁头正好处于R1的开始处,开始对R1读取并处理。因此这是对存储优化分布之后最理想的读取情况,所需时间为:
(读取(3ms)+处理(3ms))*11=66ms。