例题:在磁盘上存储数据的排列方式会影响1/0服务的总时间。假设每个磁道被划分成10个物理块,每个物理块存放1个逻辑记录。逻辑记录R1,R2....R10存放在同一个磁道上,记录的排列顺序如下表所示:
假定磁盘的旋转速度为10ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为2ms,则处理这10个记录的最长时间为()。若对存储数据的排列顺序进行优化,处理10个记录的最少时间为()。
问题一
A.30ms
B.60ms
C.94ms
D.102ms
问题二
A.30ms
B.60ms
C.102ms
D.94ms
整个磁盘如下图所示,整个磁盘的旋转速度为10ms/周,共10个磁盘,可知每个磁盘的读取时间为1ms,对于每个磁盘而言,有读取时间1ms,处理时间2ms。
接下来具体的看分析:
读取R1:
对于磁盘R1而言,磁头首先位于R1的开始处(即R10的末尾位置那条线),读取R1花费1ms时间,磁头到了R1的末尾处,又需要花费2ms处理它,所以可以得知经过3ms时候,磁头已经旋转到了R4的开始处(即R3的末尾处)。
读取R2:
接下来需要读取R2并处理R2,这个时候需要将磁头旋转到R2的开始处位置,那么需要顺时针移动(R4-R1,共计8个磁盘花费8ms)才到R2的开始处,接下来,读取R2(1ms)并处理R2(2ms)同样需要花费3ms时间。这时候读取R2花的时间是1ms+2ms+8ms=11ms
读取R3:
磁盘也到了R5的开始,也需要旋转同样的8个磁盘,依次类推。除第一个磁盘R1不需要移动磁头位置,其余9个磁盘都需要移动8个磁盘,即总时间为R1的时间(1+2)ms,后面9个磁盘的时间9*(8+1+2),共计102ms,所以第一空选择D选项。
1+2+9*11=102ms.
改善后的磁盘,避免了磁头的移动,即每个磁盘读取和处理共计3ms,总共10个磁盘,需要花费3*10=30ms(如下图所示),所以第二空选择A选项。