常用的磁盤調度算法



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

先來先服務算法(FCFS),

最短尋道時間優先算法(SSTF),

掃描算法(SCAN),

循環掃描算法(CSCAN)

 

:假定某磁盤共有200個柱面,編號爲0-199,如果在爲訪問143號柱面的請求者服務後,當前正在爲訪問125號柱面的請求服務,同時有若干請求者在等待服務,它們每次要訪問的柱面號爲   861479117794150102175130

 

 

1、先來先服務算法(FCFS)First Come First Service

這是一種比較簡單的磁盤調度算法。它根據進程請求訪問磁盤的先後次序進行調度。此算法的優點是公平、簡單,且每個進程的請求都能依次得到處理,不會出現某一進程的請求長期得不到滿足的情況。此算法由於未對尋道進行優化,在對磁盤的訪問請求比較多的情況下,此算法將降低設備服務的吞吐量,致使平均尋道時間可能較長,但各進程得到服務的響應時間的變化幅度較小。

先來先服務 12586.147.91.177.94.150.102.175.130

 

2、最短尋道時間優先算法(SSTF) Shortest Seek Time First

該算法選擇這樣的進程,其要求訪問的磁道與當前磁頭所在的磁道距離最近,以使每次的尋道時間最短,該算法可以得到比較好的吞吐量,但卻不能保證平均尋道時間最短。其缺點是對用戶的服務請求的響應機會不是均等的,因而導致響應時間的變化幅度很大。在服務請求很多的情況下,對內外邊緣磁道的請求將會無限期的被延遲,有些請求的響應時間將不可預期。

最短尋道時間優先125130.147.150.175.177.102.94.91.86

 

3、掃描算法(SCAN)電梯調度

掃描算法不僅考慮到欲訪問的磁道與當前磁道的距離,更優先考慮的是磁頭的當前移動方向。例如,當磁頭正在自裏向外移動時,掃描算法所選擇的下一個訪問對象應是其欲訪問的磁道既在當前磁道之外,又是距離最近的。這樣自裏向外地訪問,直到再無更外的磁道需要訪問纔將磁臂換向,自外向裏移動。這時,同樣也是每次選擇這樣的進程來調度,即其要訪問的磁道,在當前磁道之內,從而避免了飢餓現象的出現。由於這種算法中磁頭移動的規律頗似電梯的運行,故又稱爲電梯調度算法。此算法基本上克服了最短尋道時間優先算法的服務集中於中間磁道和響應時間變化比較大的缺點,而具有最短尋道時間優先算法的優點即吞吐量較大,平均響應時間較小,但由於是擺動式的掃描方法,兩側磁道被訪問的頻率仍低於中間磁道。

電梯調度125102.94.91.86.130.147.150.175.177

 

4、循環掃描算法(CSCAN

循環掃描算法是對掃描算法的改進。如果對磁道的訪問請求是均勻分佈的,當磁頭到達磁盤的一端,並反向運動時落在磁頭之後的訪問請求相對較少。這是由於這些磁道剛被處理,而磁盤另一端的請求密度相當高,且這些訪問請求等待的時間較長,爲了解決這種情況,循環掃描算法規定磁頭單向移動。例如,只自裏向外移動,當磁頭移到最外的被訪問磁道時,磁頭立即返回到最裏的欲訪磁道,即將最小磁道號緊接着最大磁道號構成循環,進行掃描。

循環掃描 (125130.147.150.175.177.86.91.94.102

 

轉載 http://gengning938.blog.163.com/blog/static/128225381201161884614990/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章