磁盘的驱动调度如何实现公平、高效的访盘请求?

磁盘驱动调度的概念

磁盘是一种高速旋转的存储设备。磁头沿着磁盘片直径的方向移动,同时对指定磁道上的扇面中的数据进行读写操作。当多个访盘请求在等待时,系统采用一定的策略,对这些请求的服务顺序进行调整安排,使寻道时间和延迟时间都尽可能小的那个访问请求可以优先得到服务,并降低若干个访问者的总访问时间,增加磁盘单位时间内的操作次数。达到降低平均磁盘服务时间的目的,从而实现公平、高效的访盘请求。


磁盘调度考虑的问题

一次访盘时间=寻道时间+旋转延迟时间+传输时间;
磁盘驱动调度由“移臂调度”和“旋转调度”两部分组成:
移臂调度目的是尽可能减少寻找磁道时间;
旋转调度目的是尽可能减少寻找扇区时间。

调度算法


移臂调度

先来先服务调度算法(FCFS)

按照访问请求的次序为各个进程服务。

优点:简单,公平;

缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。

最短寻道时间优先调度算法(SSTF)

优先选择距离当前磁头最近的访问请求进行服务,主要考虑寻道优先。
特点:改善了平均服务时间;
缺点:经常改变磁臂的移动方向,花费时间多又影响机械部件;还会导致“饥饿”现象,即较远距离的孤立访问可能很长时间不能获得访问磁盘的机会。

扫描算法(SCAN电梯算法)

它克服了SSTF算法的缺点,考虑了距离和方向。
特点:较好地解决了寻道性能,又防止了“饥饿”现象。
缺点:会出现刚访问过的柱面再次提出请求时,会等待较长的时间。

循环扫描算法(C-SCAN)

在SCAN的基础上改进的。磁臂改为单向移动,由外向里。
特点:较好地解决了寻道性能,又防止了“饥饿”现象。不会让刚访问过的磁道再次提出访问请求时等待较长的时间。
缺点:会出现磁臂的“黏着”现象。

旋转调度

根据延迟时间来决定执行次序的调度成为“旋转调度”。

实例分析


例题

若磁头的当前位置在100磁道上,磁头正向磁头号增加的方向移动。现有一磁盘读写请求队列:23、376、205、132、19、61、190、398、29、4、18、40. 采用FCFS、SSTF、SCAN算法,计算平局寻道长度各是多少。

结果

①FCFS;
磁头移动磁道总数为:
77+353+171+73+113+42+129+208+369+25+14+22=1596
平均移动磁道数为:
1596/12=133
②SSTF;
磁头移动磁道总数为:
32+58+15+144+21+11+6+4+1+14+372+22=700

平均移动磁道数为:

700/12=58.3

③SCSN;

磁头移动磁道总数为:

32+58+171+22+337+21+11+6+4+1+14=692

平均移动磁道数为:

692/12=57.7



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值