1. 程式人生 > >計算機作業系統磁碟排程

計算機作業系統磁碟排程

磁碟排程演算法

磁碟排程在多道程式設計的計算機系統中,各個程序可能會不斷提出不同的對磁碟進行讀/寫操作的請求。由於有時候這些程序的傳送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟裝置建立一個等待佇列,常用的磁碟排程演算法有以下四種:

1.先來先服務演算法(FCFS)

該演算法是最簡單的磁碟排程演算法,它根據程序請求訪問磁碟的先後次序進行排程。此演算法的優點是公平、簡單,且每個程序的請求都能依次地得到處理,不會出現某一程序長期得不到滿足的情況。但此演算法由於未對尋道進行優化,致使平均尋道時間可能較長。該演算法僅適合用於請求磁碟I/O的程序數目較少的場合。

FCFS排程演算法
FCFS排程演算法

2.最短尋道時間優先演算法(SSTF)

該演算法要求訪問的磁軌與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短,但這種演算法不能保證平均尋道時間最短。SSTF演算法可能導致程序發生“飢餓”現象。

SSTF排程演算法
SSTF排程演算法

3.掃描演算法(SCAN)

SCAN演算法(電梯排程演算法)考慮的是下一個訪問的磁碟既在當前磁軌之外又是距離最近。這樣自裡向外地訪問,直至無更外的磁軌需要訪問時,才將磁臂換向自外向裡移動。簡單地說該演算法既要考慮磁軌距離也要考慮當前磁頭移動方向。該演算法既能獲得較好的尋道效能,又能防止“飢餓”現象。但有可能造成程序延遲。

SCAN演算法
SCAN排程演算法

4.迴圈掃描演算法(CSCAN)

CSCAN演算法規定磁頭單向移動,例如,當前只是自裡向外移動,當磁頭移到最外的磁軌並訪問後,磁頭立即返回到最裡欲訪問的磁軌。亦即將最小磁軌號緊接著最大磁軌號構成迴圈,進行迴圈掃描。

CSCAN演算法
CSCAN排程演算法