虛擬內存是什么
虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續可用的內存(一個連續完整的地址空間),而實際上,它通常被分隔成多個物理內存碎片,還有部分暫時存儲在外部磁盤存儲器上。
在虛擬內存概念提出前,計算機內存管理依靠隨機存取存儲器(RAM)和輔助存儲,面臨程序規模增長與內存成本高昂的挑戰。虛擬內存技術通過將部分程序或數據存儲在磁盤上的一個稱為 “交換文件” 或 “分頁文件” 的特殊區域中,來擴展物理內存的容量。
當計算機缺少運行某些程序所需的物理內存時,操作系統會使用硬盤上的虛擬內存進行替代。其工作過程大致如下:
- 操作系統將物理內存分成較小的頁面。
- 當一個進程需要內存時,操作系統將頁面分配給它。
- 如果物理內存已滿,操作系統會選擇最長時間未使用的頁面并將其移動到分頁文件中。
- 當需要移動出去的頁面時,操作系統會從分頁文件中將其讀回物理內存。
每個程序都有自己的虛擬地址空間,虛擬地址空間被劃分為多個固定大小的塊,稱為頁面。與此對應的物理內存也被分成相同大小的塊,稱為物理頁面。當程序訪問虛擬地址時,虛擬內存管理系統會將虛擬地址轉換為物理地址。如果所需的頁面當前在物理內存中,轉換相對簡單;但若所需頁面不在物理內存中,虛擬內存管理系統將觸發一次頁面調度,從磁盤中選擇一個不常用的頁面換出到磁盤上的空閑區域,并將所需的頁面從磁盤讀入到物理內存中,然后重新執行進程中斷的指令。
虛擬內存具有以下優點:
- 允許計算機運行比物理內存更多的進程和程序。
- 減少了由于內存不足而導致的程序崩潰。
- 為每個進程提供了一個一致的地址空間,降低了程序員對內存管理的復雜性。
- 保護了每個進程的地址空間不會被其他進程破壞。
但它也存在一些缺點:
- 訪問存儲在硬盤驅動器上的頁面比訪問存儲在物理內存中的頁面慢,可能會導致性能下降。
- 在頻繁使用分頁時,可能會導致硬盤驅動器過度使用,從而降低系統整體性能。
虛擬內存廣泛應用在多任務操作系統、大型應用程序等場景中。不同的操作系統設置虛擬內存的方法可能會有所不同。例如在 Windows 10 系統中設置虛擬內存的步驟通常為:打開 “控制面板”,選擇 “系統和安全”,點擊 “系統”;在 “系統” 窗口中選擇 “高級系統設置”;在 “系統屬性” 窗口中選擇 “高級” 選項卡,點擊 “性能” 區域下的 “設置”;在 “性能選項” 窗口中選擇 “高級” 選項卡,點擊 “更改” 按鈕;在 “虛擬內存” 窗口中取消 “自動管理所有驅動器的分頁文件大小” 選項,選擇 “自定義大小”;根據實際情況設置初始大小和最大大小,一般建議初始大小設置為物理內存的 1.5 倍,最大大小設置為物理內存的 3 倍;點擊 “設置” 按鈕,確認設置后點擊 “確定” 按鈕即可。需注意,虛擬內存的設置應根據實際情況進行調整,設置過小或過大都可能影響計算機性能。如果計算機的硬盤空間不足,可能會影響系統穩定性和性能;若物理內存足夠大,也可適當減小或禁用虛擬內存以避免硬盤空間浪費。

