磁碟調度演算法有:1、先來先服務演算法,依照行程請求存取磁碟的先後順序進行調度;2、最短尋找時間優先演算法,選擇調度處理的磁軌是與目前磁頭所在磁軌距離最近的磁軌,以使每次的尋找時間最短;3、掃描演算法;4、循環掃描演算法。
本教學操作環境:windows7系統、Dell G3電腦。
磁碟調度在多道程式設計的電腦系統中,各個進程可能會不斷提出不同的對磁碟進行讀取/寫入操作的請求。由於有時這些進程的發送請求的速度比磁碟回應的還要快,因此我們有必要為每個磁碟裝置建立一個等待佇列。
常用的磁碟調度演算法有以下四種:
先來先服務演算法(FCFS)
#最短尋道時間優先演算法(SSTF)
掃描演算法(SCAN)
循環掃描演算法(CSCAN)
先來先服務演算法
FCFS演算法根據進程請求存取磁碟的先後順序進行調度,這是一種最簡單的調度演算法。該演算法的優點是具有公平性。如果只有少量進程需要訪問,且大部分請求都是訪問簇聚的文件扇區,則有望達到較好的性能;但如果有大量進程競爭使用磁盤,那麼這種算法在性能上往往接近於隨機調度。所以,實際磁碟調度中考慮一些更為複雜的調度演算法。
1、演算法思想:按存取請求到達的先後次序服務。
2、優點:簡單,公平。
3、缺點:效率不高,相鄰兩次請求可能會造成最內到最外的柱面尋道,使磁頭反覆移動,增加了服務時間,對機械也不利。
最短尋找時間優先演算法
SSTF演算法選擇調度處理的磁軌是與目前磁頭所在磁軌距離最近的磁軌,以使每次的尋找時間最短。當然,總是選擇最小尋找時間並不能保證平均尋找時間最小,但能提供比FCFS演算法更好的效能。這種演算法會產生「飢餓」現象。
1、演算法思想:優先選擇距離當前磁頭最近的存取請求進行服務,主要考慮尋道優先。
2、優點:改善了磁碟平均服務時間。
3、缺點:造成某些存取請求長期等待無法獲得服務。
掃描演算法(又稱電梯演算法)
SCAN演算法在磁頭當前移動方向上選擇與當前磁頭所在磁軌距離最近的請求作為下一次服務的對象。由於磁頭移動規律與電梯運作相似,故又稱為電梯調度演算法。 SCAN演算法對最近掃描過的區域不公平,因此,它在存取局部性方面不如FCFS演算法和SSTF演算法好。
1、演算法思想:當設備無存取請求時,磁頭不動;當有存取請求時,磁頭會按一個方向移動,在移[2] 動過程中對遇到的存取請求進行服務,然後判斷該方向上是否還有訪問請求,如果有則繼續掃描;否則改變移動方向,並為經過的訪問請求服務,如此反复。
2、優點:克服了最短尋道優先的缺點,既考慮了距離,同時又考慮了方向。
循環掃描演算法
在掃描演算法的基礎上規定磁頭單向移動來提供服務,回返時直接快速移動至起始端而不服務任何請求。由於SCAN演算法偏向於處理那些接近最里或最外的磁軌的存取請求,所以使用改進型的C-SCAN演算法來避免這個問題。
釆用SCAN演算法和C-SCAN演算法時磁頭總是嚴格地遵循從盤面的一端到另一端,顯然,在實際使用時還可以改進,即磁頭移動只需要到達最遠端的一個請求即可返回,不需要到達磁碟端點。這種形式的SCAN演算法和C-SCAN演算法稱為LOOK和C-LOOK調度。這是因為它們在朝一個給定方向移動之前會查看是否有請求。注意,若無特別說明,也可以預設SCAN演算法和C-SCAN演算法為LOOK和C-LOOK調度。
更多相關知識,請造訪常見問題欄位!
以上是磁碟調度演算法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!