磁盘调度算法
1、先来先服务(FCFS)
按访问请求到达的先后次序服务
优点:简单,公平
缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。
2、最短寻道时间优先(SSTF)
优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。
3、扫描算法(电梯算法、SCAN)
克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向
优点:性能较好,平均寻道时间较短,不会产生饥饿现象。
缺点:只有到达最边上的磁道时才能改变磁头移动方向。SCAN算法对于各个位置磁道的响应频率不平均。
具体做法:
根据当前磁头移动方向(一般题目会说明),使磁头按当前方向移动,知道移动到最大或最小的磁道、再按其逆方向返回。
4、单向扫描调度算法(循环扫描算法、CSCAN)
电梯算法杜绝了饥饿,但当请求对磁道的分布是均匀时,磁头回头,近磁头端的请求很少(因为磁头刚经过),而远端请求较多,这些请求等待时间要长一些。
优点:比起SCAN 来,对于各个位置磁道的响应频率很平均。
缺点:只有到达最边上的磁道时才能改变磁头移动方向。比起SCAN算法来,平均寻道时间更长。
具体做法:只有磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端而不处理任何请 求。
5、调度算法的选择
最短寻道时间优先算法:它简单有效,性价比好。(普遍采用)
扫描算法:磁盘负担重的系统。
先来先服务算法:磁盘负担很轻的系统。
一般要将磁盘调度算法作为操作系统的单独模块编写,利于修改和更换。
注解:
CSCAN和SCAN所谓的均匀与不均匀的理解:
SCAN算法的这一部分发生了重合,因此不均匀。
而CSCAN算法则比较均匀。