我相信,很多朋友會把虛擬內(nèi)存認為就是交換分區(qū)。
其實,虛擬內(nèi)存并非真正存在的物理空間,它僅僅是一個虛擬的東西,
說白了,就是用來悠進程的,進程會把虛擬內(nèi)存當作是分給它們的內(nèi)存。
早期的計算機運行程序時,是直接讓進程去占用物理內(nèi)存的,但是直接占用物理內(nèi)存有諸多問題。
至于啥問題,我今天不在這篇文章里描述。
總之,為了解決這些問題,
聰明的計算機科學家就發(fā)明了隔在物理內(nèi)存和進程之間的虛擬內(nèi)存。
虛擬內(nèi)存在32位系統(tǒng)上,最大為4G(2的32次方),所以64位的系統(tǒng)上,最大虛擬內(nèi)存就非常大了。
為什么說32位操作系統(tǒng)上最大支持物理內(nèi)存為4G,就是因為這個原因。
每個進程在運行時,都會被分配足夠運行它的虛擬內(nèi)存,這部分虛擬內(nèi)存大小即使比物理內(nèi)存大也沒有關(guān)系。進程被分配虛擬內(nèi)存后,內(nèi)核再把虛擬內(nèi)存映射到物理內(nèi)存上去。
虛擬內(nèi)存使得每個應用程序都認為自己擁有獨立且連續(xù)的可用的內(nèi)存空間(一段連續(xù)完整的地址空間)。
而實際上,它通常是被映射到多個物理內(nèi)存段,還有部分暫時存儲在外部磁盤存儲器上(這部分磁盤空間就是swap空間),
在需要時再加載到內(nèi)存中來。
當物理內(nèi)存不太夠用,或者當物理內(nèi)存中有些數(shù)據(jù)被認為是不常用的數(shù)據(jù)時,內(nèi)核就會把這部分數(shù)據(jù)存儲到swap上。
其實,即使內(nèi)存夠用,內(nèi)核同樣也會把一些數(shù)據(jù)存到交互分區(qū)里,只不過這樣的數(shù)據(jù)量并不會太大。
關(guān)于內(nèi)存管理的細節(jié)后續(xù)我再整理總結(jié)吧。
-
物理內(nèi)存
+關(guān)注
關(guān)注
0文章
11瀏覽量
8575 -
虛擬內(nèi)存
+關(guān)注
關(guān)注
0文章
78瀏覽量
8260
原文標題:「虛擬內(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)存不足的解決辦法

評論