磁碟排程演算法——FCFS、SSTF、SCAN、CSCAN
為了減少對檔案的訪問時間,應採用一種最佳的磁碟排程演算法,以使各程序對磁碟的平均訪問時間最少。由於在訪問磁碟時主要是尋道時間。因此,磁碟排程的目標是使磁碟的平均尋道時間最少。
一.先來先服務(FCFS)
1.方法
根據程序請求訪問磁碟的先後順序進行排程
2.優點
公平、簡單、每個程序請求都能依次得到處理,不會出現某一程序的請求長期得不到滿足。
3.缺點
平均尋道時間有點長,適用於磁碟I/O程序數目較少的場合
4.舉例
從100號磁軌訪問 | |
被訪問的下一個磁軌號 | 移動距離(磁軌數) |
55 |
45 |
58 | 3 |
39 | 19 |
18 | 21 |
90 | 72 |
160 | 70 |
150 | 10 |
38 | 112 |
184 | 146 |
平均尋道長度:55.3 |
二.最短尋道時間優先(SSTF)
1.方法
其要求訪問的磁軌與當前磁頭所在的磁軌距離最近
2.缺點
優先順序低的程序會發生“飢餓”現象。因為新程序請求到達,且其所要訪問的磁軌與磁頭當前所在的磁軌距離較近,必先優先滿足。
3.舉例
從100號磁軌訪問 | |
被訪問的下一個磁軌號 | 移動距離(磁軌數) |
90 |
10 |
58 | 32 |
55 | 3 |
39 | 16 |
38 | 1 |
18 | 20 |
150 | 132 |
160 | 10 |
184 | 24 |
平均尋道長度:27.5 |
三.掃描演算法(電梯排程演算法)(SCAN)
1.方法
1.首先自裡向外訪問,下一個物件是其欲訪問的磁軌既在當前磁軌之外,又是距離最近的;
2.直至無更外的磁軌需要訪問時,才將磁臂換向為自外向裡移動;
3.下一個訪問的磁軌在當前位置內為距離最近者;直至再無更裡面的磁軌要訪問。
2.優點
不僅考慮到欲訪問的磁軌與當前磁軌間的距離,更優先考慮了磁頭當前的移動方向;避免了出現“飢餓”現象。被廣泛用於大、中、小型機器和網路中的磁碟排程。
3.缺點
當磁軌剛從裡向外移動而越過了某一磁軌時,剛好一程序請求訪問此磁軌,這時此程序會等待,待磁頭繼續從裡向外,然後從外向裡掃描完處於外面的所有要訪問的磁軌後,才處理此程序,致使該程序的請求被大大推遲。
4.舉例
從100#號磁軌開始,向磁軌號增加方向訪問 | |
被訪問的下一個磁軌號 | 移動距離(磁軌數) |
150 |
50 |
160 | 10 |
184 | 24 |
90 | 94 |
58 | 32 |
55 | 3 |
39 | 16 |
38 | 1 |
18 | 20 |
平均尋道長度:27.8 |
四.迴圈掃描演算法(CSCAN)
1.方法
1.首先自裡向外訪問,當磁頭移到最外的磁軌並訪問後,磁頭返回到最裡的欲訪問磁軌,即將最小磁軌號緊接著最大磁軌號構成迴圈,繼續迴圈掃描
2.直至無更外的磁軌需要訪問時,才將磁臂換向為自外向裡移動;
3.下一個訪問的磁軌在當前位置內為距離最近者;直至再無更裡面的磁軌要訪問。
2.優點
彌補掃描演算法的不足
3.舉例
從100#號磁軌開始,向磁軌號增加方向訪問 | |
被訪問的下一個磁軌號 | 移動距離(磁軌數) |
150 |
50 |
160 | 10 |
184 | 24 |
18 | 166 |
38 | 20 |
39 | 1 |
55 | 16 |
58 | 3 |
90 | 32 |
平均尋道長度:35.8 |