磁盘调度与电梯算法

让磁盘控制器在若干个请求中选择一个来首先执行,是提高磁盘系统吞吐率的一个有效方法,相比较先到先到先服务算法在多请求时磁盘吞吐率更高。

电梯算法:我们把磁头看作是在做横跨磁盘的扫描,从柱面最内圈再到最外圈,然后再返回来,正如电梯做垂直运动,从建筑物的最底层再到顶层,然后再返回来。

假设我们正在调度一个Megatorn747硬盘,我们回一该磁盘的平均寻道时间、旋转等待时间和传输时间分别为6.46、4.17、0.13ms。看以下图中,我们看到假设磁头正好在8000柱面,但是有三个要求再10、20、30ms到达。

请求的柱面到达时间
80000
240000
560000
1600010
6400020
4000030

首先,我们已知Megatorn747硬盘的以下参数:在柱面之间移动磁头组合从起到停止花费1ms,每移动4000个柱面另加1ms。

其次,我们计算出先到先服务算法的块访问完成时间。

我们知道一开始磁头组合就在8000的位置,完成时间=4.17+0.13=4.30ms

磁头组合就在24000的位置,完成时间=4.30+(1+(24000-8000)/4000)+4.30=13.6

磁头组合就在56000的位置,完成时间=13.6+(1+(56000-24000)/4000)+4.30=26.9

磁头组合就在16000的位置,完成时间=26.9+(1+(56000-16000)/4000)+4.30=42.2

磁头组合就在64000的位置,完成时间=42.2+(1+(64000-16000)/4000)+4.30=59.5

磁头组合就在40000的位置,完成时间=59.5+(1+(64000-40000)/4000)+4.30=70.8

因为在完成56000柱面读取的时,完成时间已经超过了20ms所以,那时候请求柱面64000的要求已经到达,此时只需要进行柱面跳转以及读取即可。

请求的柱面完成时间
80004.3
2400013.6
5600026.9
1600042.2
6400059.5
4000070.8

然后,我们计算出电梯算法的块访问完成时间。

我们知道一开始磁头组合就在8000的位置,完成时间=4.17+0.13=4.30ms

磁头组合就在24000的位置,完成时间=4.30+(1+(24000-8000)/4000)+4.30=13.6

(此时到达时间为10ms的16000已经到到)

磁头组合就在56000的位置,完成时间=13.6+(1+(56000-24000)/4000)+4.30=26.9

(此时到达时间为20ms的64000已经到达,此时距离56000较端,所以先在执行64000)

磁头组合就在640000的位置,完成时间=26.9+(1+(64000-56000)/4000)+4.30=34.2

磁头组合就在40000的位置,完成时间=34.2+(1+(64000-40000)/4000)+4.30=45.5

磁头组合就在16000的位置,完成时间=45.5+(1+(64000-40000)/4000)+4.30=56.8

我们从电梯算法的根本来看,在计算此算法时候,我们需要看每次请求柱面的完成时间内是否有新的请求柱面要求到达,如果有的话,那就进行插入,首先从小到大运行,然后从大到小运行。

请求的柱面完成时间
80004.3
2400013.6
5600026.9
6400034.2
4000045.5
1600056.8

通过采用诸如电梯算法等,减少访问块所需要的平均时间,在极端情况下,会一直有很多请求在等待,我们可以使每个请求的寻道非常接近最小寻道时间而非平均寻道时间。 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值