目前常用的磁碟調度演算法有:1.先來先服務演算法(FCFS);2、最短尋道時間優先演算法(SSTF);3、掃描演算法(SCAN);4、循環掃描演算法(CSCAN)。
本教學操作環境:windows7系統、Dell G3電腦。
磁碟調度在多道程式設計的電腦系統中,各個進程可能會不斷提出不同的對磁碟進行讀取/寫入操作的請求。由於有時這些進程的發送請求的速度比磁碟回應的還要快,因此我們有必要為每個磁碟裝置建立一個等待佇列,常用的磁碟調度演算法有以下四種:
先來先服務演算法(FCFS),
最短尋道時間優先演算法(SSTF),
掃描演算法(SCAN),
循環掃描演算法(CSCAN)
例:假定某磁碟共有200個柱面,編號為0-199,如果在為存取143號柱面的請求者服務後,目前正在為存取125號柱面的請求服務,同時有若干請求者在等待服務,它們每次要訪問的柱面號為 86,147,91,177,94,150,102,175,130
#1、先來先服務演算法(FCFS)First Come First Service
這是一個比較簡單的磁碟調度演算法。它根據進程請求存取磁碟的先後次序進行調度。此演算法的優點是公平、簡單,且每個行程的請求都能依序處理,不會出現某一進程的請求長期無法滿足的情況。此演算法由於未對尋道進行最佳化,在對磁碟的存取請求比較多的情況下,此演算法將降低裝置服務的吞吐量,致使平均尋道時間可能較長,但各進程得到服務的回應時間的變化幅度較小。
先來先服務 (125)86.147.91.177.94.150.102.175.130
2、最短尋道時間優先演算法(SSTF) Shortest Seek Time First
該演算法選擇這樣的進程,其要求存取的磁軌與目前磁頭所在的磁軌距離最近,以使每次的尋道時間最短,演算法可以得到比較好的吞吐量,但卻無法保證平均尋道時間最短。其缺點是對用戶的服務請求的回應機會不是均等的,因而導致回應時間的變化幅度很大。在服務請求很多的情況下,對內外邊緣磁軌的請求將會無限期的被延遲,有些請求的回應時間將無法預期。
最短尋道時間優先(125)130.147.150.175.177.102.94.91.86
3、掃描演算法(SCAN)電梯調度
掃描演算法不僅考慮到欲求所訪問的磁軌與目前磁軌的距離,更優先考慮的是磁頭的當前移動方向。例如,當磁頭正在自內向外移動時,掃描演算法所選的下一個存取物件應是其欲存取的磁軌既在當前磁軌之外,又是距離最近的。這樣自裡向外地訪問,直到再無更外的磁道需要訪問才將磁臂換向,自外向裡移動。這時,同樣也是每次選擇這樣的進程來調度,即其要訪問的磁道,在當前磁道之內,從而避免了飢餓現象的出現。由於這種演算法中磁頭移動的規律相當像是電梯的運行,故又稱為電梯調度演算法。此演算法基本上克服了最短尋道時間優先演算法的服務集中於中間磁軌和響應時間變化比較大的缺點,而具有最短尋道時間優先演算法的優點即吞吐量較大,平均響應時間較小,但由於是擺動式的掃描方法,兩側磁軌被存取的頻率仍低於中間磁軌。
電梯調度(125)102.94.91.86.130.147.150.175.177
4、循環掃描演算法(CSCAN)
#循環掃描演算法是對掃描演算法的改進。如果對磁軌的存取請求是均勻分佈的,當磁頭到達磁碟的一端,並反向運動時落在磁頭之後的存取請求相對較少。這是由於這些磁軌剛被處理,而磁碟另一端的請求密度相當高,且這些存取請求等待的時間較長,為了解決這種情況,循環掃描演算法規定磁頭單向移動。例如,只從裡面向外移動,當磁頭移到最外的被訪問磁軌時,磁頭立即回到最裡的慾訪磁軌,即將最小磁軌號緊接著最大磁軌號構成循環,進行掃描。
循環掃描 (125)130.147.150.175.177.86.91.94.102
更多電腦相關知識,請造訪常見問題欄位!
以上是目前常用的磁碟調度演算法有哪幾種的詳細內容。更多資訊請關注PHP中文網其他相關文章!