【考研复习】磁盘上的文件记录读取时间问题反思

这个问题不难,就是绕。答案里的给的公式不好理解,画图更容易理解。

题目大意:一个磁道9个扇区,磁盘转速为27ms/r,读出一块的处理时间为2ms。问:顺序存取的话处理这9个块要多少时间。

这个问题在书里的概念也有提到过,因为磁盘在读取完文件的时候还要处理文件,但是此时磁头已经位于下一块了,所以并不能做到顺序读取无缝衔接,必须等到下一转才能读取下一块。


由题得扫过一个扇区为3ms,我们先来分析读取并处理1的情况

磁头从红线开始,经过3到达黄线,此时1号已经读取完;磁头经过2再到绿线,此时磁头已经完成对1的处理。这个时候一共经历了5ms

因为要求顺序读取,下一块必须读2,但是此时磁头不在2号的开头,所以必须要等到磁头转一圈回到2号的开头。从绿线到黄线逆时针转需要27-2=25ms。这个时候和1号的处理一样。

根据这个规律递推,有5+25+5+25…………

注意,最后在读9号的时候没有后面的25了,因为已经不用再继续了。

所以应该是5*9+25*8=245ms


那怎么才能做到更高效率的顺序存取呢?答案很显然,就是隔一块放一号。

依旧是从红线开始,我们可以发现,读完1号块后处理完磁头在6号块的范围内,此时磁头继续转动,就可以接着访问2号块。

当磁头从红线开始,转了一圈转到黄线的时候,已经处理完成了1,2,3,4,5块,经历了27+2=29ms(因为最后的5号块还要2ms处理时间)

这个时候要处理剩下的6,7,8,9块,从图中可以看出,磁头转到绿线处即可处理完成。从黄线到绿线需要1+2+3*7=24ms。

所以一共需要29+24=53ms。


答案的做法很简洁,但是不好理解,起码对于我来说,我一下是看不懂的......我觉得这样模拟的方法能对这个机制更好的理解,虽然是笨办法但是有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值