頁表


頁表起始地址存放在頁表基址寄存器(PTBR:Page Table Base Register)中

頁表項的組成:

  1.幀號

  2.頁表項標志:

    存在位(resident bit):對於一個頁面是否有物理頁與其對應,如果有就為1

    修改位(dirty bit):判斷頁面 是否被修改過

    引用位(clock/reference bit):頁面是否有過對它的引用

性能問題:

  訪問一個內存單元需要兩次內存訪問(一次獲取頁表項,一次訪問數據)

  頁表可能會非常大

  處理方法:使用緩存(快表)

       間接訪問(多級頁表)

快表:

  把近期訪問的頁表項緩存到CPU中

多級頁表:

  將頁表(頁表號)分成多級,每一級作為每一級頁表的偏移找到下一級頁表的起始地址。第一級頁表的起始地址寫在固定的寄存器CR3中,加上第一級頁號作為索引找到第二級頁表起始地址。再加上第二級頁表偏移得到實際頁幀號,再加上偏移offest得到實際頁幀。

反置頁表:

  讓頁表與物理地址大小相對應而不是與邏輯地址空間大小相對應

頁寄存器:

  讓每一個幀與頁寄存器關聯,寄存器內包括:

    1.使用位(Residence bit):此幀是否被進程占用

    2.占用頁號(Occupier):對應頁號

    3.保護位(Protection bits):訪問方式

 CPU產生的是邏輯地址,轉換時對邏輯地址做hash映射減少搜索范圍,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM