虛擬記憶體是一種記憶體管理技術,讓每個程式擁有獨立的虛擬位址空間。作業系統透過分頁機制將虛擬位址映射到實體記憶體,提供隔離、保護和超額分配的能力。程式無需關心實際實體記憶體的位置和大小。
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(Translation Lookaside Buffer)是快取最近使用的虛擬到實體位址映射的硬體,大幅加速轉換速度。TLB 缺失時需要查詢頁表(多層記憶體存取),代價高昂。
當實體記憶體不足時,作業系統需將部分頁面換出到磁碟(Swap)。常見置換演算法: