天天看點

作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程序運作記憶體模型分頁段頁式存儲分頁和分段的差別

文章目錄

  • 虛拟記憶體的基本思想
  • 程序運作記憶體模型
  • 分頁
  • 段頁式存儲
  • 分頁和分段的差別

虛拟記憶體的基本思想

按照固定大小将程序的位址空間分為多個頁面,每一個頁面内部都有連續的位址.這些頁被映射到實體記憶體,但是并不是所有的頁都在記憶體中時程式才能運作.當程式需要已經在實體記憶體中的位址空間時,由硬體完成映射;當程式引用不在記憶體中的位址空間時,産生缺頁中斷,由作業系統将頁面調入記憶體.

程序運作記憶體模型

作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程式運作記憶體模型分頁段頁式存儲分頁和分段的差別

分頁

  1. 位址的轉化

    建立頁表,通過MMU(記憶體管理單元)來完成線性位址到實體位址的轉換

    作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程式運作記憶體模型分頁段頁式存儲分頁和分段的差別
  2. 頁表項的結構(不同程序共享記憶體的 安全性)

    保護位标記了 讀,寫,執行三個權限

    修改位标記了是否被修改,如果被修改那麼頁框在重新配置設定前,需要先持久化到硬碟

    通路位是供頁面置換算法使用

    高速緩存位是是否啟用高速緩存,需要實時輸入的裝置需要關閉高速緩存

  3. 加速分頁:快表(TLB)
  • 快表是在MMU中,可以減少記憶體通路次數
  • 軟體管理TLB,當通路的頁表不在TLB中時,發出指令讓作業系統來處理(換出一頁)
  • 軟失效:在記憶體,不在頁表;硬失效:不在記憶體
  1. 針對大記憶體的頁表
  • 多級頁表
    作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程式運作記憶體模型分頁段頁式存儲分頁和分段的差別
  • 倒排頁表

倒排頁表是在每個頁表框記錄下 是哪個程序的哪個頁表項 使用目前頁表框,減少了存儲壓力,但是增大了查詢的複雜度(每次都要周遊倒排頁表)

  1. 頁面置換算法

最優頁面置換;最近未使用(R位定時清零)根據R,M位來決定換出哪個;先進先出;時鐘置換;最近最少使用;

工作集頁面置換算法:局部性原理

寫時複制,共享庫(相對跳動)

段頁式存儲

作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程式運作記憶體模型分頁段頁式存儲分頁和分段的差別
作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程式運作記憶體模型分頁段頁式存儲分頁和分段的差別
作業系統記憶體管理_虛拟記憶體虛拟記憶體的基本思想程式運作記憶體模型分頁段頁式存儲分頁和分段的差別

分頁和分段的差別

1、分頁機制會使用大小固定的記憶體塊,而分段管理則使用了大小可變的塊來管理記憶體。

2、分頁使用固定大小的塊更為适合管理實體記憶體,分段機制使用大小可變的塊更适合處理複雜系統的邏輯分區。

3、段表存儲線上性位址空間,而頁表則儲存在實體位址空間。

繼續閱讀