一、虛擬記憶體
- **定義**:Windows 將部份硬碟空間當作記憶體使用,對應檔案
pagefile.sys。
- **核心技術**:**換頁** —— 將暫時不用的記憶體頁面寫入硬碟,需要時再讀回。
- **可設定**:位置(哪顆硬碟)、大小(初始/最大值)。
- **作用**:讓實體記憶體較小時也能執行大型程式;即便實體記憶體很大,系統仍需分頁檔作為備援。
二、虛擬儲存體
- **定義**:程式設計師編碼時使用的位址空間(從 0 開始),執行時由作業系統與硬體(MMU,記憶體管理單元)重新定位至實體記憶體位址。
- **核心技術**:**位址重定位**,需 MMU 支援(如 ARM Cortex-A 系列、x86),單晶片(如 8051)通常不支援。
- **優點**:程式碼無需關心最終載入的實體位址,便於連結、載入、共享程式庫。
- **注意**:虛擬儲存體**不等於**可執行超過實體記憶體的程式。嵌入式系統(如 Windows Mobile)可能支援 2GB 虛擬位址空間但無換頁功能,仍需實體記憶體容納整個執行映像。
三、關鍵差異總結
| 項目 | 虛擬記憶體 | 虛擬儲存體 |
| 英文術語 | Virtual Memory | Virtual Storage / Virtual Address Space |
| 核心機制 | 換頁/分頁檔 | 位址重定位 (MMU) |
| 目的 | 擴展可用記憶體容量 | 簡化程式開發與載入 |
| 是否允許超過實體記憶體執行程式 | 是 | 否 (無換頁機制時) |
結論
兩者英文常同稱為 Virtual Memory,但中文語境下「虛擬記憶體」指分頁檔技術,「虛擬儲存體」指位址空間抽象技術,兩者獨立且可同時存在。