首页 > 试题广场 >

数据存储在磁盘上的排列方式会影响IO服务的总时间。假设每磁

[单选题]
数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,…,R10存放在同一个磁道上。假定磁盘的旋转速度为20ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为4ms,对信息存储进行优化分布后,处理10个记录的最少时间为多少?
  • 40ms
  • 60ms
  • 120ms
  • 160ms
如果是双缓冲区呢,本题如何求解
发表于 2015-09-16 20:22:52 回复(0)
更多回答
对块进行优化存储设计。
发表于 2016-07-13 13:56:34 回复(0)
 题目说的是“ 对信息存储进行优化分布 ”,所以,我们先设计如何存储这10个数据块。
此题目需要注意两点:
1、单缓存,只能存一个数据块,即存需要处理的这一块
2、在处理数据块的时候,磁头是在继续跑的,也就是,如果R1,R2,R3。。。R10是顺序存储时,当读取R1 要2ms , 处理R1 要4 ms,这个时候,磁头已经跑到 R4的开始位置了。

所以,我们设计的思想是:当我刚好处理R1块时,磁头刚好跑到R2的开始处,当我处理好R2时,磁头刚好跑到R3的开始处。。。依次类推。我的设计如下:
+----+-----+----+-----+----+-----+----+------+-----+-----+
| R1 | R8 | R5 | R2 | R9 | R6 | R3 | R10 | R7 | R4 |
+----+-----+----+-----+----+-----+----+------+-----+-----+ 
如果不这样存储,需要的时间肯定比这个要更长。

目前这样设计,每个块读取2ms ,处理4ms,一共10个块,所以需要60ms,就是这么来的。



 
发表于 2015-08-22 15:11:33 回复(2)
因为是单缓冲,所以在处理器处理数据的时候,磁盘是不能读入数据的,所以对于一个逻辑块的处理时间是4 + 2,因此要花费60ms
发表于 2015-02-13 09:59:46 回复(1)
磁盘的旋转速度为20ms/周,即磁头经过一个逻辑记录需要2ms的时间,而每个记录处理时间为4ms,所以相当于一个逻辑记录从读取到处理一共需要6ms,那么10个记录就是60ms。
发表于 2017-05-06 17:12:48 回复(0)
共十个记录,存在一个磁道(一圈)上,应按照 R1 R8 R5 R2 R9 R6 R3 R10 R7 R4 的顺序存储。
由于20ms转一圈,读取一个记录需要20ms / 2 = 2ms,而读取后还需要4ms来处理,这4ms时间里磁头还会划过两个记录,所以让逻辑上连续的记录块之间间隔两个块的距离,这样R1读完后,划过两个块,可以按顺序继续读取R2,以此类推。
发表于 2022-02-15 14:02:19 回复(0)
单缓冲不能读取数据,20ms时间,10个区,每个读取数据时间是2ms,处理时间是4ms,每个区总时间6ms,10个区60ms
发表于 2015-08-19 21:29:58 回复(0)
转三圈刚好处理完,(2写入时间+4处理时间)*10个待处理数据=60ms
发表于 2023-12-27 21:07:11 回复(0)
我的理解是这样的:
平均扫描一个存储块需要花费20/10 = 2ms。
如果是单缓冲,按时间最少,假设此时正好读取第一个存储块,我读它需要4ms,而在第2ms时磁头正好扫描过第二个存储块,由于是单缓存,我不能读取第二个。ms读取完后刚好磁头经过第三个存储块,读取第三个。因此每一个存储块从开始到结束实际需要花费2+4ms,10个就是60ms。
如果是双缓冲,第二个存储块就能同时读取,当读取第三个存储块时,正好4ms,第一个读取完成,可以读取第三块存储块。因此,一个存储块需要花费4ms,10个就是40ms。
编辑于 2023-08-25 17:21:23 回复(0)
一块需要2ms读 4ms处理 也就是 第一块和第二块的开始处要间隔 6ms 这样第一块读并处理完毕的时候刚好转到第二块的位置 将一周20ms分成 2ms一块 也就是10块 进行排列记录 1号隔两块放2号 再隔两块放3号 以此类推 最终需要三周才能读完10个块
发表于 2022-01-07 18:06:38 回复(0)
如果是双缓冲区应该是20+4*5=40ms
发表于 2016-04-04 14:07:31 回复(1)
| R1 | R8 | R5 | R2 | R9 | R6 | R3 | R10 | R7 | R4 |
发表于 2015-10-24 10:30:54 回复(0)