1. 程式人生 > >磁碟排程演算法——FCFS、SSTF、SCAN、CSCAN

磁碟排程演算法——FCFS、SSTF、SCAN、CSCAN

      為了減少對檔案的訪問時間,應採用一種最佳的磁碟排程演算法,以使各程序對磁碟的平均訪問時間最少。由於在訪問磁碟時主要是尋道時間。因此,磁碟排程的目標是使磁碟的平均尋道時間最少。

一.先來先服務(FCFS)

1.方法

根據程序請求訪問磁碟的先後順序進行排程

2.優點

公平、簡單、每個程序請求都能依次得到處理,不會出現某一程序的請求長期得不到滿足。

3.缺點

平均尋道時間有點長,適用於磁碟I/O程序數目較少的場合

4.舉例

FCFS排程演算法
從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.舉例

SSTF排程演算法
從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.舉例

SCAN排程演算法
從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.舉例

SCAN排程演算法
從100#號磁軌開始,向磁軌號增加方向訪問
被訪問的下一個磁軌號 移動距離(磁軌數)
150

                          50 

160 10
184 24
18 166
38 20
39 1
55 16
58 3
90 32
平均尋道長度:35.8