Linux的虛擬內(nèi)存和物理內(nèi)存是緊密聯(lián)系的,并呈現(xiàn)出一種非常復(fù)雜的交互關(guān)系,其中虛擬內(nèi)存層是由操作系統(tǒng)實(shí)現(xiàn)的一種內(nèi)存管理機(jī)制。
虛擬內(nèi)存是一種計(jì)算機(jī)內(nèi)存管理技術(shù),它使得應(yīng)用程序認(rèn)為自己具有連續(xù)的可用內(nèi)存(一個(gè)連續(xù)完整的內(nèi)存空間),而實(shí)際上通常是被分割成多個(gè)物理內(nèi)存的塊。操作系統(tǒng)會(huì)為每個(gè)進(jìn)程分配一個(gè)虛擬地址空間,該地址空間可以映射到物理內(nèi)存的任何位置。當(dāng)進(jìn)程需要訪問虛擬地址空間中的某個(gè)地址時(shí),操作系統(tǒng)會(huì)檢查該地址是否已經(jīng)被映射到物理內(nèi)存,如果沒有映射,則會(huì)產(chǎn)生一個(gè)缺頁(yè)中斷,操作系統(tǒng)會(huì)從磁盤中讀取相應(yīng)的頁(yè)面到物理內(nèi)存中并建立映射關(guān)系。
而物理內(nèi)存,是指計(jì)算機(jī)實(shí)際可用的內(nèi)存。它是由 RAM 和其他可直接訪問的硬件組件構(gòu)成的。物理內(nèi)存存儲(chǔ)正在運(yùn)行的程序和操作系統(tǒng)所需要的數(shù)據(jù)。當(dāng)硬件需要訪問內(nèi)存時(shí),它會(huì)通過物理地址訪問 RAM。
總體來說,虛擬內(nèi)存是一種高級(jí)的內(nèi)存管理技術(shù),它可以大大增加每個(gè)程序可以消耗的內(nèi)存,因?yàn)槊總€(gè)程序都可以使用自己獨(dú)立的內(nèi)存空間。而物理內(nèi)存則是實(shí)際存在的硬件內(nèi)存,通常不會(huì)超出硬件內(nèi)存的限制。