OS 磁盘扇区存放例题:假定磁盘转速为6000r/min(转/分),磁盘格式化时每个盘面被分为9个扇区,现有一个文件共有 A,B,C,D,E,F,G,H,I九个逻辑记录。。。。。。

题目:

  • 假定磁盘转速为6000r/min(转/分),磁盘格式化时每个盘面被分为9个扇区,现有一个文件共有 A,B,C,D,E,F,G,H,I九个逻辑记录要存放在同一磁道上供处理程序使用,假设每个记录的大小与扇区的大小相同,处理程序每次从磁盘读出一个记录后要花2.5ms处理时间。若忽略其他辅助时间,请回答下列问题:
  • (1)现在假设已经顺序存放好这9个记录,记录逆时针排列,磁盘顺时针旋转。那么读出该文件需要多少时间?
  • (2)为了使读出文件需要的时间最短,请重新调整各个记录的存放位置,画出各个记录的存放位置,计算该文件的读出时间。

解答:

  • (1)
      磁盘转速为6000r/min,即100r/s,则磁盘旋转一周用时: 1/100 = 10(ms) ;磁头经过每个扇区用时: 10/9 (ms) ,而读出第一条记录后还需2.5ms的时间进行处理后,此时读/写磁头已经在记录D位置,为了顺序处理B记录,必须等待磁盘把B记录旋转到读/写磁头位置下,即要有(10 - 2.5) ms = 7.5ms的延迟时间。所以处理这9条记录所要花费的时间为: 9 X (10/9+2.5) + 8 X 7.5 = 92.5ms

  • (2)
      将9条逻辑记录在磁道上的位置重新安排,如下图所示:01
      所示为这9条逻辑记录的最优分布。当读出一条记录后,读/写磁头只需经过5/6ms的时间便可读出下一条记录,无需花第一问中那么多的延迟时间。根据上图的安排,处理这9条记录所花的时间为: 9 X (10/9+2.5) + 8 X 5/6 = 39.2ms。
      与(1)中所需的处理时间相比,显然经过优化分布后读/写记录所需的时间要来得少,大大缩短了输入/输出操作时间,提高了系统的效率。

过程:

提前了解:
  以下“磁头移动”并不是硬盘中磁头围着磁盘转动,而是磁头固定,磁盘一直旋转。由于图不好旋转,而且磁头相对磁盘在运动,所以就简述为磁头在移动!!!
  需要以此记录 A,B,C,D,E,F,G,H,I九个逻辑,只有当磁头将一个扇区完整的读完(磁头从该扇区的起始点移动到末尾)
下文中的 ABCD……等字母是表示逻辑记录,1234……是指扇区号;

(1)

  • a)刚刚开始的时候,磁头在A的起始位置,

01

  • b)花费10/9ms时间将整个A给读出来,即磁头移动到A的末尾。移动后此时已经读完A,处理程序需要花费2.5ms时间来进行处理。
      此时这个位置是B的起始点,需要花费10ms磁头转一圈可以到此处。

  • 总花费时间 10/9ms;
    02

  • c)然花费2.5ms的时间来进行处理,2.5 / (10/9) = 2.25 个扇区,即2.5ms内磁头经过了2.25个扇区。

  • 总花费时间:10/9 + 2.5 ms
    03

  • d)这时候,已经处理完了A,现在需要先移动到B的起始点,然后读B,最后处理B。
      现在离上一个步骤已经过去了2.5ms,还需要花费(10 – 2.5)ms = 7.5ms到达B的起始点。

  • 总花费时间:(10/9 + 2.5) + 7.5 ms
    04

  • e)然后花费9/10ms时间来读B,以及2.5ms时间来处理B。

  • 总花费时间:2 * (10/9 + 2.5) + 7.5 ms

05

  • f)然后又要花费7.5ms到达C的起始位置。
  • 总花费时间:2 * (10/9 + 2.5) + 2 * 7.5 ms
    06

<--------然后以此类推--------->

  • g)开始读I的时候,已经花费时间8 * (10/9 + 2.5) + 8 * 7.5 ms
    07

  • 此时只需要花费10/9ms来读I,已经花费2.5ms时间来处理I,该程序就已经完全记录下来了。

  • 此时总花费时间:9 * (10/9 + 2.5) + 8 * 7.5 ms = 92.5ms

(2)

以下的扇区是磁道内扇区的位置,不是程序文件
21

  • 在读完某个扇区(1号扇区末尾,2号扇区起始点)后,经过2.5ms的处理时间,磁头已经经过了2.25个扇区(磁头在4号扇区的中间)。
  • 根据题意,剩下的0.75个扇区是无法完全读入的(磁头无法读全4号扇区,所以直接放弃),所以磁头直接读下一个扇区(开始读5号扇区)
  • 以此类推,当读完一个扇区后过3个扇区就能开始读下一个扇区,所以磁头最短读扇区顺序是:
    1→5→9→4→8→3→7→2→6
    然后把A,B,C,D,E,F,G,H,I九个逻辑记录放入对应的位置
    1(A)→5(B)→9(C )→4(D)→8(E)→3(F)→7(G)→2(H)→6(I)
    22
  • 总共花费时间:8 x ( 9/10 x 4) + 2.5 + 9/10ms = 39.1666ms = 39.2ms

资料参考

  • 25
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MoMing丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值