1. 程式人生 > >作業系統之磁碟排程演算法

作業系統之磁碟排程演算法

磁碟排程是在多道程式設計的計算機系統中,系統執行過程中各個程序可能會不斷地提出不同的磁碟讀寫請求。由於提出的請求速度通常比磁碟的響應速度要快,所以針對不同的請求對磁碟進行排程安排很有必要,故磁碟排程演算法被提出,常用的磁碟排程演算法有一下幾種:

  • 先來先服務演算法(FCFS)
  • 最短尋道時間優先演算法(SSTF)
  • 掃描演算法(SCAN)
  • 迴圈掃描演算法(CSCAN)

1. 先來先服務演算法:

該演算法是一種比較簡單的磁碟排程演算法。它依據各個程序發出磁碟讀寫請求的先後順序進行排程安排。該演算法的優點是:公平簡單,且每個程序都能得到處理,不會出現某一程序請求長期得不到滿足的情況。缺點是:該演算法未對尋道進行優化,針對磁碟訪問請求較多的情況下,此演算法會降低裝置的吞吐量,導致平均尋道時間可能較長。
2. 最短尋道時間優先演算法:

該演算法選擇的排程方案為,每次挑選請求磁軌距離當前磁頭所在磁軌距離最近的請求響應,以達到,每次的尋道時間最短,該演算法可以得到較好的系統吞吐量,但是不能保證平均尋道時間最短。缺點是:對於使用者的服務請求的響應機會不是均等的,因而導致響應時間的變化幅度很大。在服務請求很多的情況下,對內外邊緣磁軌的請求將會無限期的被延遲,有些請求的響應時間將不可預期。(選取距離當前磁軌最近的請求磁軌)

3.掃描演算法(電梯排程演算法)

掃描演算法不近考慮到欲訪問的磁軌與當前磁軌的距離,更考慮的是磁頭的當前移動方向。同比(最短尋道演算法),考慮了當前磁頭的移動方向,自裡向外地訪問,直到再無更外的磁軌需要訪問,才將磁臂換向,自外向裡進行移動。優點:避免了飢餓現象的出現,由於這種演算法中磁頭移動的規律頗似電梯的執行,因此又稱為電梯排程演算法。它克服了最短尋道時間優先演算法的服務集中於中間磁軌和響應時間變化比較大的缺點。

4.迴圈掃描演算法

迴圈掃描演算法是對掃描演算法的改進。如果對磁軌訪問請求是均勻分佈的,當磁頭到達磁碟的一端,並反向運動時落在磁頭之後的訪問請求比較少,由於這些磁軌剛被處理,而磁碟的另一端的請求密度比較高,且這些訪問請求等待的時間也會比較長。因此,迴圈掃描規定進行單向迴圈,即從裡自外,當磁頭位於最外層磁軌時,訪問結束後,立即返回最裡層磁軌。