17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法
文章目錄
- 1 磁盤的結構
- 1.1 磁盤、磁道、扇區
- 1.2 磁盤如何讀取數據
- 1.4 盤面、柱面、磁盤的物理地址
- 1.5 磁盤的分類
- 1.6 磁盤的結構小結
- 2 磁盤調度算法
- 2.1 一次磁盤讀/寫操作需要的時間
- 2.2 先來先服務算法(`FCFS`)
- 2.3 最短尋找時間優先(`SSTF`)
- 2.4 掃描算法(`SCAN`)
- 2.5 `LOOK` 調度算法
- 2.6 循環掃描算法(`C-SCAN`)
- 2.7 `C-LOOK` 調度算法
- 2.8 磁盤調度算法小結
- 3 減少磁盤延遲時間的方法
- 3.1 交替編號
- 3.2 錯位命名
- 3.3 減少磁盤延遲方法小結
- 4 磁盤管理
- 4.1 磁盤初始化
- 4.2 引導快
- 4.3 壞塊的管理
- 4.4 磁盤管理小結
1 磁盤的結構
1.1 磁盤、磁道、扇區
磁盤的表面由一些磁性物質組成,可以用這些磁性物質來記錄二進制數據
磁盤介紹:
1.2 磁盤如何讀取數據
需要把“磁頭”移動到想要讀/寫的扇區所在的磁道。磁盤會轉起來,讓目標扇區從磁頭下面劃過,才能完成對扇區的讀/寫操作。
1.4 盤面、柱面、磁盤的物理地址
可用(柱面號,盤面號,扇區號)來定位任意一個“磁盤塊”。在“文件的物理結構”小節中,我們經常提到文件數據存放在外存中的幾號塊,這個塊號就可以轉換成(柱面號,盤面號,扇區號)的地址形式。
可根據該地址讀取一個“塊”
1.5 磁盤的分類
1.6 磁盤的結構小結
2 磁盤調度算法
2.1 一次磁盤讀/寫操作需要的時間
①啟動磁頭臂是需要時間的。假設耗時為s;
②移動磁頭也是需要時間的。假設磁頭勻速移動,每跨越一個磁道耗時為m,總共需要跨越n條磁道。則:
尋道時間Ts=s+m*n
現在的硬盤移動一個磁道大約需要0.2ms,磁臂啟動時間約為2ms
1/r就是轉一圈需要的時間。找到目標扇區平均需要轉半圈,因此再乘以1/2
硬盤的典型轉速為5400轉/分,或7200轉/分,磁盤轉速越高,延遲時間越小,讀寫速度越快
傳輸時間Tt=(1/r)*(b/N)=b/(rN)
每個磁道要可存N字節的數據,因此b字節的數據需要b/N個磁道才能存儲。而讀/寫一個磁道所需的時間剛好又是轉一圈所需要的時間1/r
總的平均存取時間Tt=Ts+1/2r+b/(rN)
延遲時間和傳輸時間都與磁盤轉速相關,且為線性相關。而轉速是硬件的固有屬性,因此操作系統也無法優化延遲時間和傳輸時間,但是操作系統的磁盤調度算法會直接影響尋道時間
2.2 先來先服務算法(FCFS)
算法思想:根據進程請求訪問磁盤的先后順序進行調度。
手動模擬:
假設磁頭的初始位置是100號磁道,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
按照FCFS的規則,按照請求到達的順序,磁頭需要依次移動到55、58、39、18、90、160、150、38、184號磁道
磁頭總共移動了(100-55)+(58-55)+19+21+72+70+10+112+146=498個磁道
響應一個請求平均需要移動498/9=55.3個磁道(平均尋找長度)
優缺點分析:
優點:公平;如果請求訪問的磁道比較集中的話,算法性能還算過的去
缺點:如果有大量進程競爭使用磁盤,請求訪問的磁道很分散,則FCFS在性能上很差,尋道時間長。
2.3 最短尋找時間優先(SSTF)
算法思想:SSTF算法會優先處理的磁道是與當前磁頭最近的磁道。可以保證每次的尋道時間最短,但是并不能保證總的尋道時間最短。(其實就是貪心算法的思想,只是選擇眼前最優,但是總體未必最優)
手動模擬:
假設磁頭的初始位置是100號磁道,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
磁頭總共移動了(100-18)+(184-18)=248個磁道
響應一個請求平均需要移動248/9=27.5個磁道(平均尋找長度)
優缺點分析:
優點:性能較好,平均尋道時間短
缺點:可能產生“饑餓”現象
產生饑餓的原因在于:磁頭在一個小區域內來回來去地移動
Eg:本例中,如果在處理18號磁道的訪問請求時又來了一個38號磁道的訪問請求,處理38號磁道的訪問請求時又來了一個18號磁道的訪問請求。如果有源源不斷的18號、38號磁道的訪問請求到來的話,150、160、184號磁道的訪問請求就永遠得不到滿足,從而產生“饑餓”現象。
2.4 掃描算法(SCAN)
算法思想:SSTF算法會產生饑餓的原因在于:磁頭有可能在一個小區域內來回來去地移動。為了防止這個問題,可以規定,只有磁頭移動到最外側磁道的時候才能往內移動,移動到最內側磁道的時候才能往外移動。這就是掃描算法(SCAN)的思想。由于磁頭移動的方式很像電梯,因此也叫電梯算法。
手動模擬:
假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
磁頭總共移動了(200-100)+(200-18)=282個磁道
響應一個請求平均需要移動282/9=31.3個磁道(平均尋找長度)
優缺點分析:
優點:性能較好,平均尋道時間較短,不會產生饑餓現象
缺點:
2.5 LOOK 調度算法
算法思想:掃描算法(SCAN)中,只有到達最邊上的磁道時才能改變磁頭移動方向,事實上,處理了184號磁道的訪問請求之后就不需要再往右移動磁頭了。LOOK調度算法就是為了解決這個問題,如果在磁頭移動方向上已經沒有別的請求,就可以立即改變磁頭移動方向。(邊移動邊觀察,因此叫LOOK)
手動模擬:
假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
磁頭總共移動了(184-100)+(184-18)=250個磁道
響應一個請求平均需要移動250/9=27.5個磁道(平均尋找長度)
優缺點分析:
優點:比起SCAN算法來,不需要每次都移動到最外側或最內側才改變磁頭萬問,使尋道時間進一步縮短
2.6 循環掃描算法(C-SCAN)
算法思想:SCAN算法對于各個位置磁道的響應頻率不平均,而C-SCAN算法就是為了解決這個問題。規定只有磁頭朝某個特定方向移動時才處理磁道訪問請求,而返回時直接快速移動至起始端而不處理任何請求。
手動模擬:
假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
磁頭總共移動了(200-100)+(200-0)+(90-0)=390個磁道
響應一個請求平均需要移動390/9=43.3個磁道(平均尋找長度)
優缺點分析:
優點:比起SCAN來,對于各個位置磁道的響應頻率很平均。
缺點:只有到達最邊上的磁道時才能改變磁頭移動方向,事實上,處理了184號磁道的訪問請求之后就不需要再往右移動磁頭了;并且,磁頭返回時其實只需要返回到18號磁道即可,不需要返回到最邊緣的磁道。另外,比起SCAN算法來,平均尋道時間更長。
2.7 C-LOOK 調度算法
算法思想:C-SCAN算法的主要缺點是只有到達最邊上的磁道時才能改變磁頭移動方向,并且磁頭返回時不一定需要返回到最邊緣的磁道上。C-LOOK算法就是為了解決這個問題。如果磁頭移動的方向上已經沒有磁道訪問請求了,就可以立即讓磁頭返回,并且磁頭只需要返回到有磁道訪問請求的位置即可。
手動模擬:
假設某磁盤的磁道為0~200號,磁頭的初始位置是100號磁道,且此時磁頭正在往磁道號增大的方向移動,有多個進程先后陸續地請求訪問55、58、39、18、90、160、150、38、184號磁道
磁頭總共移動了(184-100)+(184-18)+(90-18)=322個磁道
響應一個請求平均需要移動322/9=35.8個磁道(平均尋找長度)
優缺點分析:
優點:比起C-SCAN算法來,不需要每次都移動到最外側或最內側才改變磁頭方向,使尋道時間進一步縮短
2.8 磁盤調度算法小結
3 減少磁盤延遲時間的方法
問題:磁頭讀入一個扇區數據后需要一小段時間處理,如果邏輯上相鄰的扇區在物理上也相鄰,則讀入幾個連續的邏輯扇區,可能需要很長的“延遲時間”
簡言之就是讀完一個扇區,不能立刻讀下一個,而磁盤在旋轉,要讀相鄰的扇區,就是等這一轉轉完
3.1 交替編號
若采用交替編號的策略,即讓邏輯上相鄰的扇區在物理上有一定的間隔,可以使讀取連續的邏輯扇區所需要的延遲時間更小。
思考:為什么?磁盤的物理地址是(柱面號,盤面號,扇區號)而不是(盤面號,柱面號,扇區號)
答:讀取地址連續的磁盤塊時,采用(柱面號,盤面號,扇區號)的地址結構可以減少磁頭移動消耗的時間
3.2 錯位命名
3.3 減少磁盤延遲方法小結
4 磁盤管理
4.1 磁盤初始化
4.2 引導快
計算機開機時需要進行一系列初始化的工作,這些初始化工作是通過執行初始化程序(自舉程序)完成的
初始化程序可以放在ROM(只讀存儲器)中。ROM中的數據在出廠時就寫入了,并且以后不能再修改
ROM一般在出廠時就集成到了主板之上
以前的操作系統:計算機開機時,先讀取ROM中程序并執行,完成初始化工作
初始化程序程序(自舉程序)放在ROM中存在什么問題?
萬一需要更新自舉程序,將會很不方便,因為ROM中的數據無法更改。如何解決呢?
現在的操作系統:ROM中只存放很小的“自舉裝入程序”,完整的自舉程序放在磁盤的啟動塊(即引導塊
/啟動分區)上,啟動塊位于磁盤的固定位置。
擁有啟動分區的磁盤稱為啟動磁盤或系統磁盤(C盤)
4.3 壞塊的管理
壞了、無法正常使用的扇區就是“壞塊”。這屬于硬件故障,操作系統是無法修復的。應該將壞塊標記出來,以免錯誤地使用到它
在磁盤出廠前進行低級格式化(物理格式化)時就將壞塊鏈進行初始化。
會保留一些“備用扇區”,用于替換壞塊。這種方案稱為扇區備用。且這種處理方式中,壞塊對操作系統透明。
4.4 磁盤管理小結
總結
以上是生活随笔為你收集整理的17 操作系统第四章 磁盘管理 磁盘的结构 磁盘调度算法 减少磁盘延迟时间的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习在轨迹数据挖掘中的应用研究综述
- 下一篇: java信息管理系统总结_java实现科