参考:http://edu.21cn.com/ruankao/g_185_967613-1.htm
数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,…,R10存放在同一个磁道上,记录的安排顺序如下表所示:
物理块 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
逻辑记录 |
R1 |
R2 |
R3 |
R4 |
R5 |
R6 |
R7 |
R8 |
R9 |
R10 |
假定磁盘的旋转速度为20ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为4ms,则处理这10个记录的最长时间为(15);若对信息存储进行优化分布后,处理10个记录的最少时间为 (16)。
(15)A.180msB.200msC.204msD.220ms
(16)A.40msB.60msC.100msD.160ms
试题分析
系统读记录的时间为20/10=2ms。对第一种情况:系统读出并处理记录R1之后,因为处理记录的时间是4ms,在这4ms的时间内磁盘已经转到记录R4的开始处,所以为了读出记录R2,磁盘必须再转一圈,需要2ms(读记录)加20ms×(4ms的处理时间包含其中)(转一圈)的时间。
处理第一个记录时间 2ms
处理第二个记录时间 磁盘必须再转一圈从R2转到R2(4ms处理R1记录的时间包含这里面了,在这4ms中已从R1转到R4),需要2ms(读记录) 20ms+2ms
处理第三个记录时间 20ms+2ms
处理第四个记录时间 20ms+2ms
处理第五个记录时间 20ms+2ms
处理第六个记录时间 20ms+2ms
处理第七个记录时间 20ms+2ms
处理第八个记录时间 20ms+2ms
处理第九个记录时间 20ms+2ms
处理第10个记录时间 20ms+2ms+4ms(处理时间),因为这4ms不能算在下一圈的20ms中了
这样处理10个记录时间为 2+8×22+20+2+4=204ms
也可以简单记为2+4+9×22=204ms
物理块 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
逻辑记录 |
R1 |
R8 |
R5 |
R2 |
R9 |
R6 |
R3 |
R10 |
R7 |
R4 |
从上表可以看出,当读出记录R1并处理结束后,磁头刚好转至R2记录的开始处,立即就可以读出并处理,因此处理10个记录的总时间为:
10×(2ms(读记录)+4ms(处理记录))=10×6ms=60ms
参考答案 (15)c(16)B