在磁盘上存储数据的排列方式会影响I/O服务的总时间。假设每个磁道被划分成10个物理块,每个物理块存放1个逻辑记录。逻辑记录R1,R2…R10存放在同一个磁道上,记录的排列顺序如下表所示。

2eaada673267fbc3486dccadce35b217.png

假定磁盘的旋转速度为10ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为2ms,则处理这10个记录的最长时间为();若对存储数据的排列顺序进行优化,处理10个记录的最少时间为()

第一空
A、30ms
B、60ms
C、94ms
D、102ms
第二空
A、30ms
B、60ms
C、102ms
D、94ms

请先 登录 后评论

1 个回答

亚里士德
擅长:互联网

知识点:操作系统 -> 设备管理 -> 磁盘调度 -> 旋转调度算法

这是软设书上一个几乎一模一样的例题,比书上的计算难度更简单,在222页。如果没看过可能根本不知道这题在讲什么。

读题:

题目的意思就是说有一个针一直在磁盘上不停的匀速旋转(画圆圈),在一些特定位置开始读取数据,在其他位置的时候就处理数据而不读取,处理完马上去找下一个物理块读取数据,接着循环,问什么时候才能全部处理完。

解题:第一空:

因为题目中说转一圈要10毫秒,那么经过一个物理块就需要1毫秒。也就是读取R1的时候需要1毫秒。

因为题目中说处理一个需要2毫秒,那么当读完R1那个针进入R2的时候就开始处理,出R3到R4的临界时候就把R1处理完了。因为题目要求是顺序处理,所以要求处理完R1的时候要来处理R2,所以现在那个针在R4上,所以需要等它匀速的转到R2的时候才开始读取R2。可以数一下它需要的时间是8毫秒。后面9个磁道全是这样的,所以加起来的时间是:第一个时间1+2+后面9个的时间9x(8+1+2)=D选项的时间。


第二空:需要优化一下他们的顺序,那么就是处理完R1就能马上处理R2,也就是R2应该放在4号物理块上,后面的以此类推。所以就是处理完1个就需要3毫秒,总共就需要30毫秒。

请先 登录 后评论