磁碟排程演算法

2021-09-24 15:52:16 字數 1011 閱讀 5003

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

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

(3)迴圈掃瞄演算法:cscan演算法,來看一下上一種演算法,有什麼問題。仔細一看,我們會發現,在掃瞄到最裡面的要求服務的序列時,接著會反向,在接下來的很大一部分時間裡,應該是沒有要求服務的磁軌號的,因為之前已經訪問過了。什麼意思,就是說從初始磁軌號到最裡層的乙個磁軌號之間的所有序列都已經訪問過了,所以scan會增加等待的時間。為了解決這樣的情況,cscan演算法的思想是,訪問完最裡面乙個要求服務的序列之後,立即回到最外層欲訪問磁軌。也就是始終保持乙個方向。故也稱之為單向掃瞄排程演算法。從最裡面的乙個磁軌立即回到最外層欲訪問的磁軌,這步的距離是兩者磁軌號差的絕對值。

3.源**:

#include #include #include #include #define max 100

using namespace std;

//求平均尋道長度

double pinjun(int length,int n) }

//往遞增方向訪問

for(i=flag;i=0;i--)

cout<=now)

} //往遞增方向訪問

for(i=flag;i>n;

cout<<"每個磁軌:"<>a[i];

cout<<"開始的磁軌:"<>start;

//磁碟排程目錄

while(flag)

} return 0;

}

磁碟排程演算法

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