虛擬內(nèi)存是計(jì)算機(jī)系統(tǒng)內(nèi)存管理的一種技術(shù),它通過(guò)將內(nèi)存擴(kuò)展到磁盤(pán)空間,為每個(gè)進(jìn)程提供連續(xù)的虛擬地址空間,實(shí)現(xiàn)內(nèi)存隔離、內(nèi)存擴(kuò)展和高效內(nèi)存管理。虛擬內(nèi)存通過(guò)將程序的地址空間與物理內(nèi)存空間分開(kāi)來(lái)實(shí)現(xiàn)這一目標(biāo),跟著小編一起詳細(xì)了解下。
一、虛擬內(nèi)存核心概念
定義:虛擬內(nèi)存使得應(yīng)用程序認(rèn)為它擁有連續(xù)可用的內(nèi)存(一個(gè)連續(xù)完整的地址空間),而實(shí)際上,它通常被分隔成多個(gè)物理內(nèi)存碎片,還有部分暫時(shí)存儲(chǔ)在外部磁盤(pán)存儲(chǔ)器上,在需要時(shí)進(jìn)行數(shù)據(jù)交換。
實(shí)現(xiàn)方式:通過(guò)分頁(yè)/分段技術(shù),將數(shù)據(jù)在物理內(nèi)存和磁盤(pán)交換區(qū)之間動(dòng)態(tài)交換。例如,請(qǐng)求分頁(yè)是目前最常用的一種實(shí)現(xiàn)虛擬存儲(chǔ)器的方法,在作業(yè)開(kāi)始運(yùn)行之前,僅裝入當(dāng)前要執(zhí)行的部分段即可運(yùn)行。假如在作業(yè)運(yùn)行的過(guò)程中發(fā)現(xiàn)要訪問(wèn)的頁(yè)面不在內(nèi)存,則由處理器通知操作系統(tǒng)按照對(duì)應(yīng)的頁(yè)面置換算法將相應(yīng)的頁(yè)面調(diào)入到主存,同時(shí)操作系統(tǒng)也可以將暫時(shí)不用的頁(yè)面置換到外存中。
二、虛擬內(nèi)存的主要作用
擴(kuò)展可用內(nèi)存容量:使用磁盤(pán)交換空間作為擴(kuò)展,突破物理內(nèi)存容量限制。
提供內(nèi)存保護(hù):通過(guò)頁(yè)表設(shè)置讀寫(xiě)權(quán)限位保證數(shù)據(jù)安全。
簡(jiǎn)化程序開(kāi)發(fā):開(kāi)發(fā)者無(wú)需考慮物理內(nèi)存分布情況。
支持多任務(wù)運(yùn)行:允許多個(gè)進(jìn)程同時(shí)駐留內(nèi)存而互不干擾。
優(yōu)化物理內(nèi)存使用:使用局部性原理,通過(guò)頁(yè)面置換算法保持活躍數(shù)據(jù)在物理內(nèi)存。
三、虛擬內(nèi)存技術(shù)實(shí)現(xiàn)
頁(yè)面置換算法:如LRU(最近最少使用)、FIFO(先進(jìn)先出)等。
請(qǐng)求分頁(yè)機(jī)制:在作業(yè)開(kāi)始運(yùn)行之前,僅裝入當(dāng)前要執(zhí)行的部分段,運(yùn)行時(shí)按需調(diào)入。
TLB快表加速地址翻譯:提高地址轉(zhuǎn)換速度。
硬件支持:需要MMU(內(nèi)存管理單元)支持地址轉(zhuǎn)換。
在操作系統(tǒng)中的體現(xiàn)
Windows:稱為“虛擬內(nèi)存”,在硬盤(pán)上表現(xiàn)為PageFile.Sys文件。
Linux:稱為“交換空間”(Swap Space)。
四、虛擬內(nèi)存怎么設(shè)置到d盤(pán)?
將虛擬內(nèi)存設(shè)置到D盤(pán)可以按照以下步驟進(jìn)行操作:
打開(kāi)系統(tǒng)屬性界面:
使用快捷鍵“Win+Pause/Break”或者在“開(kāi)始菜單”中右鍵點(diǎn)擊“此電腦”(或“計(jì)算機(jī)”),選擇“屬性”。
進(jìn)入高級(jí)系統(tǒng)設(shè)置:
在系統(tǒng)屬性窗口中,點(diǎn)擊左側(cè)的“高級(jí)系統(tǒng)設(shè)置”鏈接,打開(kāi)高級(jí)系統(tǒng)設(shè)置窗口。
進(jìn)入性能設(shè)置:
在高級(jí)系統(tǒng)設(shè)置窗口中,選擇“高級(jí)”選項(xiàng)卡,然后點(diǎn)擊性能部分的“設(shè)置”按鈕。
進(jìn)入虛擬內(nèi)存設(shè)置:
在彈出的性能選項(xiàng)窗口中,再次選擇“高級(jí)”選項(xiàng)卡,并點(diǎn)擊虛擬內(nèi)存部分的“更改”按鈕。
取消自動(dòng)管理:
在虛擬內(nèi)存設(shè)置窗口中,取消勾選“自動(dòng)管理所有驅(qū)動(dòng)器的分頁(yè)文件大小”。
取消C盤(pán)的虛擬內(nèi)存:
選擇C盤(pán),然后選中“無(wú)分頁(yè)文件”單選框,點(diǎn)擊“設(shè)置”按鈕,這樣會(huì)取消C盤(pán)的虛擬內(nèi)存配置。
設(shè)置D盤(pán)的虛擬內(nèi)存:
選擇D盤(pán),然后選擇“自定義大小”單選框,輸入初始大小和最大值。建議初始大小為物理內(nèi)存的1.5倍,最大值為物理內(nèi)存的3倍。完成設(shè)置后點(diǎn)擊“設(shè)置”按鈕。
保存設(shè)置并重啟:
點(diǎn)擊“確定”并重啟計(jì)算機(jī)。重啟后,檢查D盤(pán)是否生成了pagefile.sys文件,如果存在此文件,說(shuō)明虛擬內(nèi)存已成功遷移到D盤(pán)。
虛擬內(nèi)存是計(jì)算機(jī)操作系統(tǒng)中一種核心的內(nèi)存管理技術(shù),它通過(guò)將物理內(nèi)存與磁盤(pán)空間結(jié)合,為每個(gè)進(jìn)程提供獨(dú)立且連續(xù)的虛擬地址空間,從而解決物理內(nèi)存不足、內(nèi)存碎片化以及多任務(wù)并發(fā)等問(wèn)題。