首頁 >常見問題 >磁碟調度演算法有什麼

磁碟調度演算法有什麼

青灯夜游
青灯夜游原創
2022-07-21 15:27:148252瀏覽

磁碟調度演算法有:1、先來先服務演算法,依照行程請求存取磁碟的先後順序進行調度;2、最短尋找時間優先演算法,選擇調度處理的磁軌是與目前磁頭所在磁軌距離最近的磁軌,以使每次的尋找時間最短;3、掃描演算法,在磁頭當前移動方向上選擇與當前磁頭所在磁軌距離最近的請求作為下一次服務的對象;4、循環掃描演算法,在掃描演算法的基礎上規定磁頭單向移動來提供服務,回返時直接快速移動至起始端而不服務任何請求。

磁碟調度演算法有什麼

本教學操作環境:windows7系統、Dell G3電腦。

磁碟調度在多道程式設計的電腦系統中,各個進程可能會不斷提出不同的對磁碟進行讀取/寫入操作的請求。由於有時這些進程的發送請求的速度比磁碟回應的還要快,因此我們有必要為每個磁碟裝置建立一個等待佇列。

常用磁碟調度演算法

#先來先服務演算法

FCFS演算法根據進程請求存取磁碟的先後順序進行調度,這是一種最簡單的調度演算法。該演算法的優點是具有公平性。如果只有少量進程需要訪問,且大部分請求都是訪問簇聚的文件扇區,則有望達到較好的性能;但如果有大量進程競爭使用磁盤,那麼這種算法在性能上往往接近於隨機調度。所以,實際磁碟調度中考慮一些更為複雜的調度演算法。

  • 演算法思想:按存取請求到達的先後次序服務。

  • 優點:簡單,公平。

  • 缺點:效率不高,相鄰兩次請求可能會造成最內到最外的柱面尋道,使磁頭反覆移動,增加了服務時間,對機械也不利。

最短尋找時間優先演算法

SSTF演算法選擇調度處理的磁軌是與當前磁頭所在磁軌距離最近的磁軌,以使每次的尋找時間最短。當然,總是選擇最小尋找時間並不能保證平均尋找時間最小,但能提供比FCFS演算法更好的效能。這種演算法會產生「飢餓」現象。

  • 演算法想法:優先選擇距當前磁頭最近的存取請求進行服務,主要考慮尋道優先。

  • 優點:改善了磁碟平均服務時間。

  • 缺點:造成某些存取請求長期等待無法獲得服務。

掃描演算法(又稱電梯演算法)

SCAN演算法在磁頭當前移動方向上選擇與目前磁頭所在磁軌距離最近的請求作為下一次服務的對象。由於磁頭移動規律與電梯運作相似,故又稱為電梯調度演算法。 SCAN演算法對最近掃描過的區域不公平,因此,它在存取局部性方面不如FCFS演算法和SSTF演算法好。

演算法思想:當裝置無存取請求時,磁頭不動;當有存取請求時,磁頭會按一個方向移動,在移 [2]  動過程中對遇到的存取請求進行服務,然後判斷該方向上是否還有訪問請求,如果有則繼續掃描;否則改變移動方向,並為經過的訪問請求服務,如此反复。如下圖所示:

磁碟調度演算法有什麼

掃描演算法(電梯演算法)的磁頭移動軌跡

  • 優點:克服了最短尋道優先的缺點,既考慮了距離,同時又考慮了方向。

循環掃描演算法

在掃描演算法的基礎上規定磁頭單向移動來提供服務,回返時直接快速移動至起始端而不服務任何請求。由於SCAN演算法偏向於處理那些接近最里或最外的磁軌的存取請求,所以使用改進型的C-SCAN演算法來避免這個問題。

釆用SCAN演算法和C-SCAN演算法時磁頭總是嚴格地遵循從盤面的一端到另一端,顯然,在實際使用時還可以改進,即磁頭移動只需要到達最遠端的一個請求即可返回,不需要到達磁碟端點。這種形式的SCAN演算法和C-SCAN演算法稱為LOOK和C-LOOK調度。這是因為它們在朝著一個給定方向移動之前會查看是否有請求。注意,若無特別說明,也可以預設SCAN演算法和C-SCAN演算法為LOOK和C-LOOK調度。

補充:各演算法的比較


##優點
##缺點##################FCFS演算法############公平、簡單####
平均尋道距離大,只應用在磁碟I/O較少的場合
SSTF演算法
效能比「先來先服務」好
不能保證平均尋道時間最短,可能會出現「飢餓」現象
#SCAN演算法
尋道表現較好,可避免「飢餓」現象
不利於遠離磁頭一端的存取請求
C-SCAN演算法
消除了對兩端磁軌請求的不公平
--

#更多相關知識,請造訪常見問題欄位!

以上是磁碟調度演算法有什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn