關于虛擬內存和物理內存
Windows大家都已經很熟悉物理內存和虛擬內存了把,現(xiàn)在小編帶你們走進Linux的虛擬內存和物理內存吧。
關于虛擬內存和物理內存:
物理內存,在應用中,自然是顧名思義,物理上,真實的插在板子上的內存是多大就是多大了。看機器配置的時候,看的就是這個物理內存。 虛擬內存,這個概念就要稍微了解一下CPU了,^_^,只是稍微,畢竟我們現(xiàn)在談的是應用中的概念。我們應該知道,對于一般的32位CPU,有32根地址線,那么它的尋址空間就是4GB。也就是說,如果沒有其他的限制,我們的主板上最大可以安裝4GB的物理內存。哈哈,一般的機器是不會裝那么多物理內存的,大把的銀子啊,性價比可合不上。程序員可不管這個,我們對CPU編程,不能一臺機器根據你物理內存的大小我編一個程序吧?那也太原始社會了吧。所以程序員都是直接使用的4GB的奢侈的進程空間(或許,不應該用奢侈這么短視的詞。曾幾何時,128M的物理內存也是我們不可想象的呢?)。這怎么辦?總不能不用那些程序了吧。好吧,這個問題交給OS去解決吧。這樣,OS就提出了一個虛擬內存的概念。就是進程、用戶、不必考慮實際上物理內存的限制,而直接對4GB的進程空間進行尋址。如果所尋址的數(shù)據實際上不在物理內存中,那就從“虛擬內存”中來獲取。這個虛擬內存可以是一個專門文件格式的磁盤分區(qū)(比如linux下的swap分區(qū)),也可以是硬盤上的某個足夠大的文件(比如win下的那個i386文件,好像是這個名字)。物理內存中長期不用的數(shù)據,也可以轉移到虛擬內存中。這樣的交換由OS來控制,用戶看起來就好像物理內存大了一樣。有了虛擬內存的概念,我們就可以自由的使用4GB的進程空間了。但是,前提是你的硬盤由足夠的空間,而且你舍得劃分出(4GB-物理內存)大的虛擬內存空間來。^_^。一般情況下,虛擬內存的大小,各個OS也進行了限制(比如linux的swap分區(qū)的大小,win下也可以調整虛擬內存文件的大小和位置)。所以,我們程序所能使用的存儲空間大小就是:物理內存+虛擬內存。要調大虛擬內存,右鍵單擊我的電腦,屬性,高級,性能的設置,高級選項卡