常見的磁碟排程演算法

2021-07-11 22:46:59 字數 1196 閱讀 3356

先來先服務演算法

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

1、演算法思想:按訪問請求到達的先後次序服務。

2、優點:簡單,公平。

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

4、例子:

假設磁碟訪問序列:98,183,37,122,14,124,65,67。讀寫頭起始位置:53。求:磁頭服務序列和磁頭移動總距離(道數)。

由題意和先來先服務演算法的思想,得到下圖所示的磁頭移動軌跡。由此:

磁頭服務序列為:98,183,37,122,14,124,65,67

磁頭移動總距離=(98-53)+(183-98)+|37-183|+(122-37)+|14-122|+(124-14)+|65-124|+(67-65)=640(磁軌)

fcfs

最短尋找時間優先演算法

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

1、演算法思想:優先選擇距當前磁頭最近的訪問請求進行服務,主要考慮尋道優先。

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

3、缺點:造成某些訪問請求長期等待得不到服務。

4、例子:對上例的磁碟訪問序列,可得磁頭移動的軌跡如下圖。

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

scan演算法在磁頭當前移動方向上選擇與當前磁頭所在磁軌距離最近的請求作為下一次服務的物件。由於磁頭移動規律與電梯執行相似,故又稱為電梯排程演算法。scan演算法對最近掃瞄過的區域不公平,因此,它在訪問區域性性方面不如fcfs演算法和sstf演算法好。[1]

演算法思想:當裝置無訪問請求時,磁頭不動;當有訪問請求時,磁頭按乙個方向移動,在移[2]

動過程中對遇到的訪問請求進行服務,然後判斷該方向上是否還有訪問請求,如果有則繼續掃瞄;否則改變移動方向,並為經過的訪問請求服務,如此反覆。如下圖所示:

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

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

磁碟排程演算法

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

磁碟排程演算法

一次磁碟讀寫操作的時間由尋找 尋道 時間 延遲時間和傳輸時間決定 1 尋找時間ts 活動頭磁碟在讀寫資訊前,將磁頭移動到指定磁軌所需要的時間。這個時間除跨越n條磁軌的時間外,還包括啟動磁臂的時間s,即 ts m n s。式中,m是與磁碟驅動器速度有關的常數,約為0.2ms,磁臂的啟動時間約為2ms。...

磁碟排程演算法

一次磁碟讀寫操作的時間由尋找 尋道 時間 延遲時間和傳輸時間決定。1 尋找時間ts 活動頭磁碟在讀寫資訊前,將磁頭移動到指定磁軌所需的時間。這個時間除跨越 n 條磁軌的時間外,還包括啟動磁臂的時間 s 即 ts m n s 備註 m 是與磁碟驅動器速度有關的常數,約為 0.2ms 磁臂的啟動時間約為...