為了減少對文件的訪問時間,應采用一種最佳的磁盤調度算法。使各種進程對磁盤平均訪問時間最小。由於在訪問磁盤的事件中主要是尋道時間,因此,磁盤調度算法的目標是是磁盤的平均尋道時間最小。目前磁盤調度算法有以下幾類:
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算法來,平均尋道時間更長。