处理完5个记录的总时间是多少?

rubyt 2008-10-08 10:50:23
有5个记录A、B、C、D、E存放在某磁盘的某一磁道上,假定这个磁道划分为5块,每块存放一个记录,现在要顺序处理这5个记录,如果磁盘旋转速度为20ms转1周,处理程序每读出一个记录后花6ms进行处理。试问(1)处理完5个记录的总时间是多少?(2)为减少盘旋转的周数,应如何安排这5个记录,并计算优化分布处理这5个记录的总时间。
...全文
202 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2008-10-08
  • 打赏
  • 举报
回复
2楼的你的算法好像复杂了,俺认为题目的意思就是随机读一条记录要花20ms,虽然你考虑的是实际情况。

按俺的理解,读一条花20ms,处理花6ms,再读又得等14ms,所以处理一条是40ms,所以随机处理5条共花200ms.

如果5条连续着,则读进来共花20ms,处理共花30ms,共需要50ms。

也欢迎大家继续拍砖。
bshawk 2008-10-08
  • 打赏
  • 举报
回复
访问一个扇区的时间 = 寻道时间 + 旋转时间 + 传输时间 !
你的条件貌似还不够? 寻道时间呢? 现代磁盘寻道时间平均一般6-9ms,最大也能到20多ms!如果不考虑寻道时间,我来给你算算!

Q1: (假设ABCDE是任意排列在磁道上的)
t = 寻道时间 + 旋转时间 + 传输时间 = 寻道时间 +(20/2)*5 + 6*5 = 寻道时间 + 50 + 30
其中,20/2为平均旋转时间,再乘以5就是访问5个扇区的平均旋转时间

Q2:我认为是顺序安排ABCDEF到磁道上,此时的时间为
t = 寻道时间 + 旋转时间 + 传输时间 = 寻道时间 + [20+(20+4)+(20+8)+(20+12)+(20+16)]/5 + 6*5 =寻道时间 + 28 + 30

欢迎大家继续拍砖! GOOD LUCK!

建议去看下深入理解计算系统(CS:APP)这本书,里面有一些对磁盘的介绍!


23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧