一、
磁碟的物理結構
二. 磁碟的型別
對於磁碟,可以從不同的角度進行分類。最常見的有:將磁碟分成硬碟和軟盤、單片盤和多片盤、固定頭磁碟和活動頭
(移動頭
)磁碟等。下面僅對固定頭磁碟和移動頭磁碟做些介紹。
(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。...