什麼是虛擬記憶體?概念、運作方式、工作原理
網路百科全書中虛擬記憶體的定義。
什麼是虛擬記憶體?
虛擬記憶體是一種機制,應用程式透過這種機制運作,就好像系統擁有比實際更多的 RAM 一樣。虛擬記憶體的運作方式是將不需要的程式碼分頁到硬碟上稱為交換檔案或頁面檔案的檔案。
虛擬記憶體
虛擬記憶體在 Windows 中的工作原理
在 Microsoft Windows 作業系統中,虛擬記憶體管理員會將屬於執行中進程位址空間的虛擬位址對應至電腦中的實體記憶體頁面。
這樣可以確保每個進程都有足夠的虛擬記憶體來有效率地運行,並且不會侵入其他進程的記憶體。虛擬記憶體管理程式會處理 RAM 與分頁檔之間的分頁,並使用稱為需求分頁的處理程序來交換頁面。
結果是每個應用程式最多可以存取 4 GB 的記憶體。舊版 Windows (例如 Microsoft Windows 95 和 Windows 98) 中的類似進程使用稱為交換檔案的類似結構。
從 Microsoft Windows 2000 開始,您可以使用 [系統屬性] 屬性頁面來變更頁面檔案的大小上限。
使用虛擬記憶體的優點
虛擬記憶體的主要優點之一是它能夠處理兩倍於主記憶體的位址。它使用軟體將 HDD 用作臨時儲存來消耗更多內存,而 MMU 則透過 CPU 將虛擬記憶體位址轉換為實體位址。程式使用虛擬位址來儲存指令和資料;當程式執行時,虛擬位址會轉換為實際的記憶體位址。
在 Windows 10 中管理虛擬記憶體(頁面檔案)
Windows 10 中的 Pagefile 是一個隱藏的系統文件,副檔名為 .SYS,儲存在電腦的系統磁碟機(通常是 C:)上。Pagefile 允許計算機通過減少物理內存或 RAM 的工作負載來平穩運行。
簡而言之,每次您開啟的應用程式數量超過電腦上的 RAM 所能容納的應用程式時,RAM 中已有的程式都會自動傳輸到頁面檔案。此程式在技術上稱為分頁。由於頁面檔案可作為輔助 RAM,因此很多時候它也稱為虛擬記憶體。
分頁檔案的最小和最大大小分別最多可達電腦實體記憶體的 1.5 倍和 4 倍。例如,如果您的電腦有 1GB 的 RAM,則最小頁面檔案大小可以是 1.5GB,檔案的最大大小可以是 4GB。
預設情況下,Windows 10 會根據電腦的配置和其中存在的 RAM 自動管理頁面檔案。但是,如果您在 Windows 10 上工作時遇到滯後,或者您開始出現PAGE_FAULT_IN_NONPAGED_AREA或KERNEL_DATA_INPAGE_ERROR藍屏死機 (BSOD),那麼手動管理頁面文件的大小是您應該尋找的第一件事。
在 Windows 10 中手動管理頁面檔案大小非常簡單。就是這樣:
https://www.tomshardware.com/news/how-to-manage-virtual-memory-pagefile-windows-10,36929.html
虛擬記憶體歷史記錄
虛擬記憶體的概念最早由柏林工業大學的德國物理學家 Fritz-Rudolf Güntsch 於 1956 年在其博士論文《具有多個異步旋轉鼓和自動高速記憶體操作的數位電腦的邏輯設計》中提出;它描述了一台具有 6 個 100 字主核心記憶體區塊和 1,000 個 100 字區塊位址空間的機器,硬體在主記憶體和輔助鼓記憶體之間自動移動區塊。
分頁功能最初是在曼徹斯特大學實施的,作為擴展 Atlas 計算機工作記憶的一種方式,將其 16,384 個字的主核心記憶體與額外的 98,304 個字的輔助鼓記憶體相結合。第一台 Atlas 於 1962 年投入使用,但到 1959 年已經開發出尋呼的工作原型。
1961 年,Burroughs Corporation 獨立發布了第一台具有虛擬內存的商用計算機 B5000,具有分段而不是分頁功能。
在虛擬記憶體能夠在主流作業系統中實現之前,必須解決許多問題。動態地址轉換需要昂貴且難以構建的專用硬件;初始實作稍微減慢了記憶體的存取速度。有人擔心,利用輔助儲存的新系統範圍演算法會不如先前使用的特定於應用程式的演算法有效。到 1969 年,關於商用計算機虛擬內存的爭論結束了;由 David Sayre 領導的 IBM 研究團隊表明,他們的虛擬記憶體覆蓋系統始終比最好的手動控制系統工作得更好。