第九章 磁盤存儲器管理
一、核心概念
磁盤存儲器是現代計算機系統的核心外部存儲設備,其管理效率直接影響到系統的整體性能和可靠性。操作系統通過磁盤存儲器管理,實現了對海量數據的持久化存儲與高效訪問。
1.1 磁盤結構
典型的磁盤由多個盤片組成,每個盤片有兩個磁面,每個磁面劃分為多個同心圓的磁道,磁道又進一步劃分為扇區。數據讀寫的基本單位是扇區(通常為512字節或4KB)。磁盤訪問時間主要包括:尋道時間(磁頭移動到目標磁道)、旋轉延遲(目標扇區旋轉到磁頭下)和傳輸時間。
1.2 磁盤調度算法
為減少尋道時間,提高磁盤I/O效率,操作系統采用多種磁盤調度算法:
- 先來先服務(FCFS):按請求順序處理,公平但效率低。
- 最短尋道時間優先(SSTF):選擇離當前磁頭位置最近的請求,可能導致饑餓現象。
- 掃描算法(SCAN,電梯算法):磁頭單向移動,處理途中的請求,到達一端后反向。
- 循環掃描算法(C-SCAN):單向提供服務,返回時快速移動不處理請求,提供更均勻的等待時間。
- LOOK與C-LOOK算法:SCAN與C-SCAN的改進版,只需移動到最遠的請求位置即折返,而非磁盤端點。
二、磁盤格式化與管理
2.1 低級與高級格式化
- 低級格式化:在物理層面劃分磁道和扇區,設置扇區標識信息。通常由制造商完成。
- 高級格式化:在分區上創建文件系統,包括建立引導塊、空閑空間管理結構(如位圖)、根目錄等。由操作系統完成。
2.2 磁盤分區與引導
磁盤可劃分為多個分區,每個分區可安裝不同的操作系統或存儲不同類型的數據。主引導記錄(MBR)或GUID分區表(GPT)存儲分區信息。系統啟動時,BIOS/UEFI讀取引導扇區,加載操作系統的引導程序。
三、提高磁盤性能與可靠性的技術
3.1 磁盤緩存與緩沖
操作系統在內存中開辟磁盤緩存(頁緩存/緩沖區緩存),暫存頻繁訪問的磁盤數據,減少實際I/O操作。寫操作也常通過緩存延遲寫入(寫回策略),提升響應速度,但需注意數據一致性與斷電保護。
3.2 獨立磁盤冗余陣列(RAID)
通過將多個物理磁盤組合成一個邏輯單元,實現性能提升和/或數據冗余:
- RAID 0(條帶化):數據分塊并行寫入多個磁盤,提高吞吐量,無冗余。
- RAID 1(鏡像):數據同時寫入兩個磁盤,提供完全冗余,讀性能提升。
- RAID 5(帶分布式奇偶校驗的條帶化):數據與奇偶校驗信息分布在所有磁盤上,兼顧性能、容量與冗余,允許一塊磁盤故障。
- RAID 10(先鏡像再條帶化):RAID 1與RAID 0的結合,高性能高可靠,但成本較高。
3.3 穩定存儲與數據一致性
為確保關鍵數據(如元數據)不因系統崩潰而損壞,需采用穩定存儲技術,如寫前日志(預寫式日志,WAL)。文件系統(如ext4、NTFS)或數據庫系統常利用日志記錄即將進行的修改,先寫日志再寫實際數據,崩潰后可根據日志恢復一致性狀態。
四、磁盤空間管理
操作系統需高效管理磁盤的存儲空間:
- 連續分配:文件占據連續的磁盤塊,訪問快但易產生外部碎片。
- 鏈接分配:文件數據塊通過指針鏈接,無外部碎片,但隨機訪問效率低。
- 索引分配:為每個文件建立索引塊,存放所有數據塊指針,支持直接訪問。UNIX的inode是經典實現。
- 空閑空間管理:常用位圖(bitmap)或鏈表記錄空閑磁盤塊。位圖更節省空間且便于查找連續空閑塊。
五、與計算機系統服務的關聯
磁盤存儲器管理并非孤立模塊,它與操作系統的其他核心服務緊密協同,構成了完整的存儲棧:
- 與內存管理協同:通過虛擬內存和頁面置換,磁盤作為內存的擴展(交換空間)。當物理內存不足時,不常用的頁面被換出到磁盤的交換分區/文件;需要時再換入。
- 與文件系統協同:文件系統是磁盤管理的高級抽象。磁盤調度、空間分配策略由文件系統驅動,最終轉化為對具體磁盤塊的讀寫請求。文件系統緩存(頁緩存)直接依賴于磁盤緩存機制。
- 與I/O系統協同:磁盤作為塊設備,其讀寫請求通過I/O子系統(包括設備驅動程序、中斷處理)提交和執行。I/O調度器可能對請求進行合并和重排序,進一步優化性能。
- 與系統啟動和恢復服務:磁盤上的引導扇區、操作系統內核映像、初始化內存磁盤(initrd)是系統啟動的基礎。日志和RAID等技術為系統崩潰后的數據恢復提供了保障。
###
第九章“磁盤存儲器管理”深入闡述了操作系統如何高效、可靠地管理這一關鍵硬件資源。從底層的物理結構、訪問調度,到高級的RAID、緩存和空間分配策略,構成了一個多層次的優化體系。理解這些機制,對于分析系統I/O瓶頸、設計高性能存儲方案、保障數據安全至關重要。它作為“計算機系統服務”的核心組成部分,與內存、文件、I/O管理等模塊無縫集成,共同支撐著上層所有應用程序的數據持久化需求。