磁碟的驅動排程

2021-09-26 13:04:21 字數 2494 閱讀 7766

一、

磁碟的物理結構

二. 磁碟的型別

對於磁碟,可以從不同的角度進行分類。最常見的有:將磁碟分成硬碟和軟盤、單片盤和多片盤、固定頭磁碟和活動頭

(移動頭

)磁碟等。下面僅對固定頭磁碟和移動頭磁碟做些介紹。

(1)

固定頭磁碟。

(2)

移動頭磁碟。

柱面號,磁軌號,扇區號。

假定以l,m,n

分別表示盤組的柱面數,盤面數和扇區數。

b表示塊號,則第

i個柱面,

j個磁頭,

k個扇區對應的塊號為:

b=(i*m*n)+(j*n)+k 

也可根據塊號

b來反求磁碟上的物理位置: i

=int(b,m*n)

j=int(mod(b,m*n),n)

k=mod(mod(b,m*n),n)

(1)尋道時間(

2)旋轉延遲時間(

3)傳輸時間

訪問磁碟的時間

=尋找時間

+延遲時間

+傳輸時間

四、磁碟排程演算法

先來先服務排程演算法(

fcfs):

最短尋找時間排程演算法(

sstf):

電梯排程演算法(

scan):

掃瞄法:

1. 先來先服務

(fcfs)

這是最簡單的磁碟排程演算法。它根據程序請求訪問磁碟的先後次序進行排程

2. 最短尋道時間優先

(sstf)

該演算法選擇這樣的程序,其要求訪問的磁軌與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短,但這種演算法不能保證平均尋道時間最短。

3. 掃瞄

(scan)

演算法sstf

演算法的實質是基於優先順序的排程演算法,因此就可能導致優先順序低的程序發生「飢餓」

(starvation)

現象。因為只要不斷有新程序的請求到達,且其所要訪問的磁軌與磁頭當前所在磁軌的距離較近,這種新程序的

i/o請求必然優先滿足。在對

sstf

演算法略加修改後,則可防止低優先順序程序出現「飢餓」現象。

4. 迴圈掃瞄

(cscan)

演算法scan

演算法既能獲得較好的尋道效能,又能防止「飢餓」現象,故被廣泛用於大、中、小型機器和網路中的磁碟排程。但也存在這樣的問題:當磁頭剛從裡向外移動而越過了某一磁軌時,恰好又有一程序請求訪問此磁軌,這時,該程序必須等待,待磁頭繼續從裡向外,然後再從外向裡掃瞄完處於外面的所有要訪問的磁軌後,才處理該程序的請求,致使該程序的請求被大大地推遲。

5  nstepscan演算法在

sstf

、scan

及cscan

幾種排程演算法中,都可能出現磁臂停留在某處不動的情況,例如,有乙個或幾個程序對某一磁軌有較高的訪問頻率,即這個(些

)程序反覆請求對某一磁軌的

i/o操作,從而壟斷了整個磁碟裝置。我們把這一現象稱為「磁臂粘著」

(armstickiness

)。在高密度磁碟上容易出現此情況。

6  fscan

演算法fscan

演算法實質上是n步

scan

演算法的簡化,即

fscan

只將磁碟請求佇列分成兩個子佇列。乙個是由當前所有請求磁碟

i/o的程序形成的佇列,由磁碟排程按

scan

演算法進行處理。另乙個是在掃瞄期間,將新出現的所有請求磁碟

i/o的程序放入等待處理的請求佇列。這樣,所有的新請求都將被推遲到下一次掃瞄時處理。

磁碟驅動排程問題 貪心

題目 輸入乙個請求序列 98,183,37,122,14,124,65,67 假設磁頭一開始的位置start處於c c不在序列中的任何位置 例如c 53 如果採用最短尋道優先sstf,輸出序列的排程順序和磁頭移動總數 思路 首先sstf屬於作業系統的知識,表示每一次都找離當前位置最近的乙個磁軌去處理...

磁碟排程演算法

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

磁碟排程演算法

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