【linux系列知識】操作系統內存管理

操作系統內存管理

     邏輯地址即虛擬地址,存在目的即爲了更充分地利用物理內存,對於一個32的操作系統,虛擬內存大小爲4G,所以每個程序都以爲自己有4G的內存,算是讓內存“無限大”。

      爲了更好地利用內存空間,我們把內存進行分頁,即按照頁單位進行獲取內存,虛擬內存和物理內存都進行了分頁處理,爲了區分兩者,我們把虛擬內存的稱爲,而物理內存的稱爲。而我們需要根據虛擬內存找到對應的物理內存,這就是內存映射,用來存儲映射關係的,我們稱爲頁表,頁表裏有頁號和幀號的對應關係。而物理內存是有限的,所以我們需要一些額外的磁盤,這樣頁表中關於幀號這一欄可能存放的磁盤,那麼當我們找到磁盤時,這時就會發生缺頁中斷,觸發程序進入內核態,內核就把那一幀數據加載到內存,若此時內存已滿,這時就會採用一些頁的置換算法,把內存中的一幀和磁盤中的那一幀進行交換。

     由於頁表也佔用內存,所以會導致內存浪費,且中間有查表操作,效率也會有降低,所以有內存映射的一些優化方法:(1)時間優化:採用快表 快表中存放的是最近經常用到一些內存,大小較小,可以直接加載到CPU中,所以提高速率;(2)空間優化 採用多級頁表;(3)分段 即虛擬內存進行分段

虛擬內存分段示意圖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章