首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数据存储在磁盘上的排列方式会影响IO服务的总时间。假设每磁
[单选题]
数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,…,R10存放在同一个磁道上。假定磁盘的旋转速度为20ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为4ms,对信息存储进行优化分布后,处理10个记录的最少时间为多少?
40ms
60ms
120ms
160ms
查看答案及解析
添加笔记
求解答(22)
邀请回答
收藏(691)
分享
12个回答
添加回答
1
huixieqingchun
对块进行优化存储设计。
发表于 2016-07-13 13:56:34
回复(0)
103
StrongYoung
题目说的是“
对信息存储进行优化分布
”,所以,我们先设计如何存储这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)
14
hello_lin
因为是单缓冲,所以在处理器处理数据的时候,磁盘是不能读入数据的,所以对于一个逻辑块的处理时间是4 + 2,因此要花费60ms
发表于 2015-02-13 09:59:46
回复(1)
10
紫旋
磁盘的旋转速度为20ms/周,即磁头经过一个逻辑记录需要2ms的时间,而每个记录处理时间为4ms,所以相当于一个逻辑记录从读取到处理一共需要6ms,那么10个记录就是60ms。
发表于 2017-05-06 17:12:48
回复(0)
2
忘言201805101243333
共十个记录,存在一个磁道(一圈)上,应按照 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)
2
codermanFans
如果是双缓冲区呢,本题如何求解
发表于 2015-09-16 20:22:52
回复(0)
1
胡萝卜须
单缓冲不能读取数据,20ms时间,10个区,每个读取数据时间是2ms,处理时间是4ms,每个区总时间6ms,10个区60ms
发表于 2015-08-19 21:29:58
回复(0)
0
牛客582026798号
转三圈刚好处理完,(2写入时间+4处理时间)*10个待处理数据=60ms
发表于 2023-12-27 21:07:11
回复(0)
0
一叶见秋
我的理解是这样的:
平均扫描一个存储块需要花费20/10 = 2ms。
如果是单缓冲,按时间最少,假设此时正好读取第一个存储块,我读它需要4ms,而在第2ms时磁头正好扫描过第二个存储块,由于是单缓存,我不能读取第二个。ms读取完后刚好磁头经过第三个存储块,读取第三个。因此每一个存储块从开始到结束实际需要花费2+4ms,10个就是60ms。
如果是双缓冲,第二个存储块就能同时读取,当读取第三个存储块时,正好4ms,第一个读取完成,可以读取第三块存储块。因此,一个存储块需要花费4ms,10个就是40ms。
编辑于 2023-08-25 17:21:23
回复(0)
0
kklj
一块需要2ms读 4ms处理 也就是 第一块和第二块的开始处要间隔 6ms 这样第一块读并处理完毕的时候刚好转到第二块的位置 将一周20ms分成 2ms一块 也就是10块 进行排列记录 1号隔两块放2号 再隔两块放3号 以此类推 最终需要三周才能读完10个块
发表于 2022-01-07 18:06:38
回复(0)
0
胡哈哈
如果是双缓冲区应该是20+4*5=40ms
发表于 2016-04-04 14:07:31
回复(1)
0
Top0NE
| R1 | R8 | R5 | R2 | R9 | R6 | R3 | R10 | R7 | R4 |
发表于 2015-10-24 10:30:54
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
阿里巴巴
操作系统
上传者:
KLLLL
难度:
12条回答
691收藏
15513浏览
热门推荐
相关试题
进程阻塞的原因不包括()
阿里巴巴
操作系统
测试
后端开发
客户端开发
前端开发
数据
运维/技术支持
评论
(21)
来自
阿里巴巴2013研发工程...
有两个N*N的矩阵A和B,想要在P...
阿里巴巴
操作系统
评论
(38)
来自
中国电信2025春招笔试...
请编写实现malloc()内存分配...
微软
C++
操作系统
评论
(3)
请你简要说明一下视频秀场与传统的视...
竞品研究
评论
(1)
不系统的进行全面测试,但可以发现一...
软件测试
评论
(0)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题