虛擬記憶體

概述

虛擬記憶體是一種記憶體管理技術,讓每個程式擁有獨立的虛擬位址空間。作業系統透過分頁機制將虛擬位址映射到實體記憶體,提供隔離、保護和超額分配的能力。程式無需關心實際實體記憶體的位置和大小。

分頁機制

x86-64 使用 4 層分頁結構:PML4 → PDPT → PD → PT → Offset(每層 9 位元,Offset 12 位元)。頁表條目(PTE)包含 Present、R/W、U/S、XD 等旗標,以及實體頁框號碼(PFN)。

// 虛擬位址分解 (x86-64)
// | PML4 (9) | PDPT (9) | PD (9) | PT (9) | Offset (12) |
//  47:39      38:30      29:21    20:12    11:0

MMU 與 TLB

MMU(記憶體管理單元)負責位址轉換。TLB(Translation Lookaside Buffer)是快取最近使用的虛擬到實體位址映射的硬體,大幅加速轉換速度。TLB 缺失時需要查詢頁表(多層記憶體存取),代價高昂。

頁面置換

當實體記憶體不足時,作業系統需將部分頁面換出到磁碟(Swap)。常見置換演算法:

相關連結