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