**:
1、概念
物理記憶體:真實的硬體裝置(記憶體條)
虛擬記憶體:利用磁碟空間虛擬出的一塊邏輯記憶體,用作虛擬記憶體的磁碟空間被稱為交換空間(swap space)。(為了滿足物理記憶體的不足而提出的策略)
2.使用的順序
linux會在物理記憶體不足時,使用交換分割槽的虛擬記憶體。
核心會將暫時不用的記憶體塊資訊寫到交換空間,這樣以來,物理記憶體得到了釋放,這塊記憶體就可以用於其它目的,當需要用到原始的內容時,這些資訊會被重新從交換空間讀入物理記憶體。
linux的記憶體管理採取的是分頁訪問機制,linux系統會不時的進行頁面交換操作,以保持盡可能多的空閒物理記憶體,即使並沒有什麼事情需要記憶體,linux也會交換出暫時不用的記憶體頁面。這可以避免等待交換所需的時間。
( 注1 :linux進行頁面交換是有條件的,不是所有頁面在不用時都交換到虛擬記憶體,linux核心根據」最近最經常使用「演算法,僅僅將一些不經常使用的頁面檔案交換到虛擬記憶體,有時我們會看到這麼乙個現象:linux物理記憶體還有很多,但是交換空間也使用了很多。其實,這並不奇怪,例如,乙個占用很大記憶體的程序執行時,需要耗費很多記憶體資源,此時就會有一些不常用頁面檔案被交換到虛擬記憶體中,但後來這個占用很多記憶體資源的程序結束並釋放了很多記憶體時,剛才被交換出去的頁面檔案並不會自動的交換進物理記憶體,除非有這個必要,那麼此刻系統物理記憶體就會空閒很多,同時交換空間也在被使用,這是正常現象。)
( 注2:交換空間的頁面在使用時會首先被交換到物理記憶體,如果此時沒有足夠的物理記憶體來容納這些頁面,它們又會被馬上交換出去,如此以來,虛擬記憶體中可能沒有足夠空間來儲存這些交換頁面,最終會導致linux出現假死機、服務異常等問題,linux雖然可以在一段時間內自行恢復,但是恢復後的系統已經基本不可用了。
因此,合理規劃和設計linux記憶體的使用,是非常重要的。)
物理記憶體和虛擬記憶體
1.物理記憶體和虛擬記憶體 直接從物理記憶體讀取資料比從硬碟讀寫資料要快得多,因此,我們希望所有的資料的讀寫在記憶體中完成,但是記憶體是有限的,這樣就引出了物理記憶體與虛擬記憶體的概念。物理記憶體是系統硬體提供的記憶體大小,是真正的記憶體。虛擬記憶體是為了滿足物理記憶體不足而提出的策略,利用磁碟空間...
虛擬記憶體和物理記憶體
虛擬記憶體 物理記憶體 物理記憶體,在應用中,物理上,真實的插在板子上的記憶體是多大就是多大了。而在cpu中的概念,物理記憶體就是cpu的位址線可以直接進行定址的記憶體空間大小。比如8086只有20根位址線,那麼它的定址空間就是1mb,我們就說8086能支援1mb的物理記憶體,及時我們安裝了128m...
物理記憶體和虛擬記憶體
1.物理記憶體和虛擬記憶體 直接從物理記憶體讀取資料比從硬碟讀寫資料要快得多,因此,我們希望所有的資料的讀寫在記憶體中完成,但是記憶體是有限的,這樣就引出了物理記憶體與虛擬記憶體的概念。物理記憶體是系統硬體提供的記憶體大小,是真正的記憶體。虛擬記憶體是為了滿足物理記憶體不足而提出的策略,利用磁碟空間...