我相信,很多朋友會(huì)把虛擬內(nèi)存認(rèn)為就是交換分區(qū)。
其實(shí),虛擬內(nèi)存并非真正存在的物理空間,它僅僅是一個(gè)虛擬的東西,
說白了,就是用來悠進(jìn)程的,進(jìn)程會(huì)把虛擬內(nèi)存當(dāng)作是分給它們的內(nèi)存。
早期的計(jì)算機(jī)運(yùn)行程序時(shí),是直接讓進(jìn)程去占用物理內(nèi)存的,但是直接占用物理內(nèi)存有諸多問題。
至于啥問題,我今天不在這篇文章里描述。
總之,為了解決這些問題,
聰明的計(jì)算機(jī)科學(xué)家就發(fā)明了隔在物理內(nèi)存和進(jìn)程之間的虛擬內(nèi)存。
虛擬內(nèi)存在32位系統(tǒng)上,最大為4G(2的32次方),所以64位的系統(tǒng)上,最大虛擬內(nèi)存就非常大了。
為什么說32位操作系統(tǒng)上最大支持物理內(nèi)存為4G,就是因?yàn)檫@個(gè)原因。
每個(gè)進(jìn)程在運(yùn)行時(shí),都會(huì)被分配足夠運(yùn)行它的虛擬內(nèi)存,這部分虛擬內(nèi)存大小即使比物理內(nèi)存大也沒有關(guān)系。進(jìn)程被分配虛擬內(nèi)存后,內(nèi)核再把虛擬內(nèi)存映射到物理內(nèi)存上去。
虛擬內(nèi)存使得每個(gè)應(yīng)用程序都認(rèn)為自己擁有獨(dú)立且連續(xù)的可用的內(nèi)存空間(一段連續(xù)完整的地址空間)。
而實(shí)際上,它通常是被映射到多個(gè)物理內(nèi)存段,還有部分暫時(shí)存儲(chǔ)在外部磁盤存儲(chǔ)器上(這部分磁盤空間就是swap空間),
在需要時(shí)再加載到內(nèi)存中來。
當(dāng)物理內(nèi)存不太夠用,或者當(dāng)物理內(nèi)存中有些數(shù)據(jù)被認(rèn)為是不常用的數(shù)據(jù)時(shí),內(nèi)核就會(huì)把這部分?jǐn)?shù)據(jù)存儲(chǔ)到swap上。
其實(shí),即使內(nèi)存夠用,內(nèi)核同樣也會(huì)把一些數(shù)據(jù)存到交互分區(qū)里,只不過這樣的數(shù)據(jù)量并不會(huì)太大。
關(guān)于內(nèi)存管理的細(xì)節(jié)后續(xù)我再整理總結(jié)吧。
-
物理內(nèi)存
+關(guān)注
關(guān)注
0文章
11瀏覽量
8574 -
虛擬內(nèi)存
+關(guān)注
關(guān)注
0文章
78瀏覽量
8260
原文標(biāo)題:「虛擬內(nèi)存」并非「交換分區(qū)」
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何定義虛擬內(nèi)存?
虛擬內(nèi)存是什么_虛擬內(nèi)存有什么用

虛擬內(nèi)存不足怎么解決
虛擬內(nèi)存設(shè)置多少合適
虛擬內(nèi)存是什么意思
虛擬內(nèi)存不足的解決辦法

評論