作業系統的磁碟結構 磁碟管理 磁碟排程演算法

2021-10-05 21:28:30 字數 2153 閱讀 2955

磁碟根據磁頭是否可以移動分為活動磁頭和固定磁頭。

根據碟片是否可以更換,分為固定磁碟和可換盤磁碟

首先一次磁碟讀或寫操作需要多少時間?

尋道時間:在讀寫前,將磁頭移動到指定磁軌所花的時間。

其實啟動磁頭臂也是需要時間的,這裡把它記為 s.

移動磁頭時,每跨越乙個磁軌耗時m,總共假設跨越n個磁軌。

所以尋道時間 t=m*n+s;

延遲時間:通過旋轉磁碟,是磁頭到達目標扇區所需要的時間。轉速設為r.

所以平均所需的延遲時間tr=(1/2)*(1/r)=1/2r

傳輸時間:從磁碟讀出或向磁碟寫入資料所經歷的時間,假設磁碟轉速是r,讀寫位元組為b,每個磁軌上的位元組數是n,則:

tt=(1/r)*(b/n)=b/(rn)

總的訪問時間=尋道時間+延遲時間+傳輸時間,但是由於延遲時間和傳輸時間都與硬碟的轉速有關,轉速越大,時間越短,因此系統需要優化的是尋道時間,以下所講的磁碟排程演算法都是服務於尋道時間

按照磁軌請求順序排程。

優點:公平簡單。

缺點:平均尋道時間可能較長。

優先排程與當前磁頭所在磁軌最近的磁軌。

雖然平均尋道時間變短了,但是不夠公平。如果新到達的磁軌請求總是比在等待的磁軌請求近,那麼等待的那個請求就會飢餓。兩端的磁軌請求更容易出現飢餓現象。

電梯總是保持乙個方向執行,直到該方向沒有請求位置,然後改變執行方向。

電梯演算法和電梯的執行過程類似,總是按照乙個方向進行磁碟排程,直到該方向上沒有未完成的磁碟請求,然後改變方向。

因為考慮了移動方向,因此所有的磁碟請求都會被滿足,解決了sstf演算法的飢餓問題。

只有磁頭朝某個方向移動時才會響應請求,移動到邊緣後立即讓磁頭返回起點。返回途中不做任何處理。

scan演算法的公升級,只要磁頭移動方向上不再有請求就立即改變磁頭的方向。

c-scan演算法的改進,只要在磁頭移動方向上不再有請求,就立即讓磁頭返回起點。

具體做法:讓相鄰盤面的扇區編號「錯位」

原理:與交替編號相同。「錯位命名法可以降低延遲時間」

磁碟位址結構(柱面號,盤面號,扇區號),為什麼不是(盤面號,柱面號,扇區號)?

因為在讀取位址連續的磁碟塊時,前者更不需要移動磁頭。

磁碟初始化

進行低階格式化(物理格式化),將磁碟的各個磁軌劃分成扇區。乙個扇區通常可分為頭,資料區,尾三個部分組成。管理山區所需要的資料結構一般在頭和尾中,包括扇區校驗碼等。

將磁碟分割槽,每個分割槽由若干個柱面組成(c盤,d盤等)

進行邏輯格式化,建立檔案系統。包括建立根目錄。初始化儲存空間管理所用的資料結構。

計算機開機時需要進行一系列初始化的工作,這些初始化工作是通過執行初始化程式(也叫自舉程式)完成的。

rom:被稱為唯讀儲存器,rom中的資料在出廠時就寫入了(整合在主機板上),並且以後無法修改。

如果把初始化程式放在rom中是無法進行修改的,因此只在rom中存放很小的「自舉裝入程式」,而完整的自舉程式放在引導塊中,啟動塊位於磁碟固定位置。擁有啟動分割槽的磁碟叫做系統盤或啟動盤(windows的c盤)

什麼是壞塊?

壞了、無法正常使用的扇區就是壞塊。這屬於硬體故障。作業系統無法修復,應該將他標記出來,以後不再使用它。

對於簡單的磁碟,可以在邏輯格式化時對整個磁碟進行壞塊檢查。

對於複雜的磁碟,會維護乙個壞塊鍊錶,在磁碟出廠前進行低階初始化時,就將壞塊鏈初始化,也會保留一些備用扇區,用於替換壞塊。這種方案稱為扇區備用。這種操作對系統來說是透明的。

磁碟結構簡介

今天在學習 鳥哥的linux私房菜 時,鳥哥講到了磁碟結構,看得我雲裡霧裡的。索性網上搜尋,看到一篇比較好的博文,主要是圖例比較精準,結合文字描述很快就搞明白了。這裡講的主要是網上所謂的老式磁碟,它是由乙個個碟片組成的,我們先從個碟片結構講起。如圖1所示,圖中的一圈圈灰色同心圓為一條條磁軌,從圓心向...

磁碟結構簡介

今天在學習 鳥哥的linux私房菜 時,鳥哥講到了磁碟結構,看得我雲裡霧裡的。索性網上搜尋,看到一篇比較好的博文,主要是圖例比較精準,結合文字描述很快就搞明白了。這裡講的主要是網上所謂的老式磁碟,它是由乙個個碟片組成的,我們先從個碟片結構講起。如圖1所示,圖中的一圈圈灰色同心圓為一條條磁軌,從圓心向...

磁碟結構簡介

今天在學習 鳥哥的linux私房菜 時,鳥哥講到了磁碟結構,看得我雲裡霧裡的。索性網上搜尋,看到一篇比較好的博文,主要是圖例比較精準,結合文字描述很快就搞明白了。這裡講的主要是網上所謂的老式磁碟,它是由乙個個碟片組成的,我們先從個碟片結構講起。如圖1所示,圖中的一圈圈灰色同心圓為一條條磁軌,從圓心向...