操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法
本文已收錄至 Github(MD-Notes),若博客中有圖片打不開,可以來我的 Github 倉庫:https://github.com/HanquanHq/MD-Notes,涵蓋了互聯網大廠面試必問的知識點,講解透徹,長期更新中,歡迎一起學習探討。
面試必會系列專欄:https://blog.csdn.net/sinat_42483341/category_10300357.html
操作系統系列專欄:https://blog.csdn.net/sinat_42483341/category_10519484.html
第四章 文件管理2 - 磁盤管理
目錄
- 第四章 文件管理2 - 磁盤管理
- 磁盤的物理地址
- 磁盤調度算法
- 影響磁盤“尋道時間”的算法
- 先來先服務算法(FCFS)
- 最短尋找時間優先(SSTF)
- 掃描算法(SCAN)
- 掃描算法的改進:LOOK調度算法
- 掃描算法的改進:循環掃描算法(C-SCAN)
- 減少磁盤“延遲時間”的方法
- 交替編號(同一個盤面內的扇區交替編號)
- 錯位命名(不同盤面之間扇區錯位命名)
- 磁盤的管理
- 磁盤初始化
- 引導塊
- 壞塊的管理
磁盤的物理地址
可用 柱面號,盤面號,扇區號 來定位任意一個“磁盤塊”
磁臂可以來回伸縮的稱為 活動頭磁盤,來帶動磁頭定位磁道
磁頭不可移動的稱為 固定頭磁盤,這種磁盤中每個磁道有一個磁頭。
磁盤調度算法
一次磁盤讀/寫操作需要的時間:
影響磁盤“尋道時間”的算法
操作系統的磁盤調度算法會直接影響 尋道時間
先來先服務算法(FCFS)
根據進程請求訪問磁盤的先后順序進行調度。
最短尋找時間優先(SSTF)
優先處理的磁道是與當前磁頭最近的磁道。可以保證每次的尋道時間最短,但是并不能保證總的尋道時間最短。(其實就是貪心算法的思想,只是選擇眼前最優,但是總體未必最優)
掃描算法(SCAN)
只有磁頭移動到最外側磁道的時候才能往內移動,移動到最內側磁道的時候才能往外移動。這就是掃描算法(SCAN)的思想。由于磁頭移動的方式很像電梯,因此也叫電梯算法。
掃描算法的改進:LOOK調度算法
如果在磁頭移動方向上已經沒有別的請求,就可以立即改變磁頭移動方向。(邊移動邊觀察,因此叫LOOK)
掃描算法的改進:循環掃描算法(C-SCAN)
只有磁頭朝某個特定方向移動時才處理磁道訪問請求,而返回時直接快速移動至起始端而不處理任何請求。
減少磁盤“延遲時間”的方法
延遲時間:將目標扇區轉到刺頭下面所花的時間
需要解決的問題:磁頭讀入一個扇區數據后,需要時間處理,物理上相鄰的扇區可能來不及處理,磁頭還沒有準備好,只能等該扇區再次劃過磁頭再讀入,導致延遲時間長
交替編號(同一個盤面內的扇區交替編號)
即讓邏輯上相鄰的扇區在物理上有一定的間隔,可以使讀取連續的邏輯扇區所需要的延遲時間更小
思考:為什么磁盤的物理地址是(柱面號,盤面號,扇區號)而不是(盤面號,柱面號,扇區號)?
答:讀取地址連續的磁盤塊時,采用(柱面號,盤面號,扇區號)的地址結構可以減少磁頭移動消耗的時間
錯位命名(不同盤面之間扇區錯位命名)
所有盤面都是一起連軸轉的,讀完 0 號盤面的磁盤塊后,需要時間處理,才能讀取 1 號扇區的磁盤塊。采用錯位命名法,可以留出處理時間。
磁盤的管理
磁盤初始化
小)、尾三個部分組成。管理扇區所需要的各種數據結構一般存放在頭、尾兩個部分,包括扇區校驗碼(如奇偶校驗、CRC循環冗余校驗碼等,校驗碼用于校驗扇區中的數據是否發生錯誤)
引導塊
計算機開機時需要進行一系列初始化的工作,這些初始化工作是通過執行初始化程序(自舉程序)完成的。
ROM中只存放很小的“自舉裝入程序”,開機時計算機先運行“自舉裝入程序”,通過執行該程序就可找到引導塊在硬盤中的位置,并將完整的“自舉程序”讀入內存,完成初始化。
擁有啟動分區的磁盤稱為啟動磁盤或系統磁盤(C:盤)
壞塊的管理
壞了、無法正常使用的扇區就是“壞塊”。
對于簡單的磁盤,可以在邏輯格式化時(建立文件系統時)對整個磁盤進行壞塊檢查,標明哪些扇區是壞扇區,比如:在FAT表上標明。(在這種方式中,壞塊對操作系統不透明)
對于復雜的磁盤,磁盤控制器(磁盤設備內部的一個硬件部件)會維護一個壞塊鏈表。在磁盤出廠前進行低級格式化(物理格式化)時就將壞塊鏈進行初始化。會保留一些“備用扇區”,用于替換壞塊。這種方案稱為扇區備用。且這種處理方式中,壞塊對操作系統透明。
總結
以上是生活随笔為你收集整理的操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统:第四章 文件管理1 - 文件逻
- 下一篇: java信息管理系统总结_java实现科