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