为了减少对文件的访问时间,应采用一种最佳的磁盘调度算法。使各种进程对磁盘平均访问时间最小。由于在访问磁盘的事件中主要是寻道时间,因此,磁盘调度算法的目标是是磁盘的平均寻道时间最小。目前磁盘调度算法有以下几类:

1.先来先服务(FCFS):根据进程请求访问磁盘的先后次序进行调度。

假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道

按照FCFS的规则,按照请求到达的顺序,磁头需要一次移动到55,58,39,90,160,150,38,184号磁道

 磁头总共移动的磁道个数为45+3+19+21+72+70+10+112+146=498

平均寻道长度为498/9=55.3个磁道

优点:公平,性能还可以

缺点:如果有大量进程竞争使用磁盘,请求访问磁道很分散,则FCFS在性能上很差,寻道时间长。

最短寻道时间优先(SSTF):其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。

假设磁头的初始位置是100号磁道,有多个进程先后陆续的请求访问55,58,39,18,90,160,150,38,184号磁道

按照SSTF的规则,请求到达的 

       

磁头总共移动了(100-18)+(184-18)=248个磁道

平均寻道长度为248/9=27.5个磁道

优点:性能较好,平均寻道时间短

缺点:可能产生“饥饿”现象

扫描算法(SCAN):当磁头正在由里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。这样由里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向,由外向里移动。也叫电梯算法。

磁头总共移动了(184-100)+(184-18)=250个磁道

平均寻道长度为250/9=27.8个磁道

优点:性能较好,平均寻道时间短,不会产生饥饿现象

缺点:1,只有到最边上的磁道才能改变磁头的移动方向。2.SCAN对于各个位置磁道响应频率不平均。

循环扫描算法(CSCAN):为了减少SCAN算法造成的某些进程的请求被严重推迟,CSCAN算法规定磁头单向移动。

磁头总共移动了(184-100)+(184-18)+(90-18)=322个磁道

平均寻道长度为322/9=35.8个磁道

优点:比起SCAN算法,对于各位置磁道的响应频率很平均。

缺点:只有到边上才能改变磁头移动方向,比起SCAN算法来,平均寻道时间更长。