虛擬存儲器是一種通過軟硬件結(jié)合實現(xiàn)的內(nèi)存管理技術(shù),它為每個進程提供獨立的、比物理內(nèi)存更大的虛擬地址空間。其核心原理是將物理內(nèi)存與外存結(jié)合,利用局部性原理動態(tài)調(diào)度數(shù)據(jù),使程序能夠訪問超出實際物理內(nèi)存容量的數(shù)據(jù),同時保證訪問速度接近物理內(nèi)存,成本接近外存。
一、虛擬存儲器是什么?
虛擬存儲器是一種通過軟硬件協(xié)同實現(xiàn)的內(nèi)存管理技術(shù),其核心功能是邏輯擴展物理內(nèi)存容量,使程序能夠訪問比實際物理內(nèi)存更大的地址空間。它通過將物理內(nèi)存與外存結(jié)合,利用局部性原理動態(tài)調(diào)度數(shù)據(jù),實現(xiàn)內(nèi)存的高效利用。用戶感知到的內(nèi)存容量由物理內(nèi)存和外存容量共同決定,而運行速度接近物理內(nèi)存,成本則接近外存。
二、虛擬存儲器的三大實現(xiàn)方案
1. 分頁式虛擬存儲器
原理:
將虛擬地址空間和物理內(nèi)存劃分為固定大小的頁和頁框。操作系統(tǒng)通過頁表記錄虛擬頁號與物理頁框號的映射關(guān)系,內(nèi)存管理單元在訪問內(nèi)存時,根據(jù)頁表將虛擬地址轉(zhuǎn)換為物理地址。若所需頁面不在物理內(nèi)存中,則觸發(fā)缺頁中斷,操作系統(tǒng)從磁盤調(diào)入該頁,并可能置換出其他頁面。
優(yōu)勢:
實現(xiàn)簡單,易于管理。
有效防止內(nèi)存碎片,外部碎片被消除。
支持共享內(nèi)存,多個進程可映射同一物理頁。
適用場景:
需要高效利用內(nèi)存、減少碎片的通用計算環(huán)境,如服務(wù)器、桌面操作系統(tǒng)。

2. 分段式虛擬存儲器
原理:
將虛擬地址空間劃分為邏輯段,每個段長度可變。操作系統(tǒng)通過段表記錄段名與物理頁框號的映射關(guān)系,并支持段的動態(tài)增長和收縮。訪問內(nèi)存時,CPU將虛擬地址分解為段名和段內(nèi)偏移量,通過段表轉(zhuǎn)換為物理地址。
優(yōu)勢:
更好地利用內(nèi)存空間,減少內(nèi)部碎片。
支持動態(tài)增長和收縮的段,靈活適應(yīng)程序需求。
便于實現(xiàn)共享內(nèi)存和保護。
適用場景:
需要邏輯模塊隔離和動態(tài)內(nèi)存管理的場景,如嵌入式系統(tǒng)、實時操作系統(tǒng)。
3. 段頁式虛擬存儲器
原理:
結(jié)合分段和分頁的優(yōu)點,先將虛擬地址空間劃分為段,再將每個段劃分為固定大小的頁。操作系統(tǒng)通過段表和頁表兩級映射實現(xiàn)地址轉(zhuǎn)換:先根據(jù)段表找到段的基地址,再根據(jù)頁表找到物理頁框號。
優(yōu)勢:
兼顧分段的靈活性和分頁的效率,支持邏輯模塊隔離和內(nèi)存共享。
減少外部碎片和內(nèi)部碎片。
適用場景:
需要復(fù)雜內(nèi)存管理的系統(tǒng),如大型數(shù)據(jù)庫、高性能計算環(huán)境。
三、虛擬存儲器的關(guān)鍵技術(shù)支撐
局部性原理:
程序在執(zhí)行過程中傾向于重復(fù)訪問近期使用過的數(shù)據(jù)或附近的數(shù)據(jù)。虛擬存儲器利用這一特性,通過按需調(diào)頁和頁面置換,確保高頻訪問的數(shù)據(jù)駐留在物理內(nèi)存中。
缺頁中斷機制:
當(dāng)進程訪問的頁面不在物理內(nèi)存中時,觸發(fā)缺頁中斷,操作系統(tǒng)從磁盤調(diào)入所需頁面,并更新頁表。若物理內(nèi)存已滿,則通過頁面置換算法選擇犧牲頁面換出到磁盤。
地址變換機構(gòu):
MMU通過頁表或段表將虛擬地址轉(zhuǎn)換為物理地址。為加速轉(zhuǎn)換,現(xiàn)代系統(tǒng)使用TLB緩存常用頁表項,減少訪問內(nèi)存的次數(shù)。
虛擬存儲器的應(yīng)用價值
支持大型程序運行:
進程可訪問比物理內(nèi)存大得多的邏輯地址空間,突破物理內(nèi)存限制。
提高系統(tǒng)安全性:
每個進程擁有獨立的虛擬地址空間,防止進程間相互干擾。
簡化內(nèi)存管理:
操作系統(tǒng)動態(tài)分配和釋放內(nèi)存,無需程序員手動管理。
優(yōu)化資源利用:
通過頁面置換算法高效利用物理內(nèi)存,允許多個進程同時運行。
虛擬存儲器通過分頁、分段或段頁式管理,將虛擬地址映射到物理內(nèi)存或磁盤空間,實現(xiàn)內(nèi)存的高效利用。當(dāng)程序訪問的頁面不在物理內(nèi)存時,系統(tǒng)自動從磁盤調(diào)入所需數(shù)據(jù),并置換出暫不使用的頁面。這一機制不僅突破了物理內(nèi)存限制,還簡化了內(nèi)存管理,提升了系統(tǒng)安全性和多任務(wù)處理能力。