複製鏈接
請複製以下鏈接發送給好友

頁表

鎖定
頁表是一種特殊的數據結構,放在系統空間的頁表區,存放邏輯頁與物理頁幀的對應關係。 每一個進程都擁有一個自己的頁表,PCB表中有指針指向頁表。 [1] 
中文名
頁表
存儲方式
基本分頁存儲管理方式
所屬領域
操作系統

頁表地址結構

邏輯地址:CPU所生成的地址。CPU產生的邏輯地址被分為 :p (頁號) 它包含每個頁在物理內存中的基址
地址轉化 地址轉化
用來作為頁表的索引;d (頁偏移),同基址相結合,用來確定送入內存設備的物理內存地址。
物理地址:內存單元所看到的地址。邏輯地址空間為2^m,且頁大小為2^n,那麼邏輯地址的高m-n位表示頁號,低n位表示頁偏移。
邏輯地址空間:由程序所生成的所有邏輯地址的集合。
物理地址空間:與邏輯地址相對應的內存中所有物理地址的集合,用户程序看不見真正的物理地址。
注:用户只生成邏輯地址,且認為進程的地址空間為0到max。物理地址範圍從R+0到R+max,R為基地址,地址映射-將程序地址空間中使用的邏輯地址變換成內存中的物理地址的過程。由內存管理單元(MMU)來完成。
分頁邏輯地址 =P(頁號).d(頁內位移)
分頁物理地址=f(頁幀號).d(同上)
P = 線性邏輯地址/頁面大小
d= 線性邏輯地址-P*頁面大小 [1] 

頁表作用

實現從頁號到物理塊號的地址映射。
邏輯地址轉換成物理地址的過程是:用頁號p去檢索頁表,從頁表中得到該頁的物理塊號,把它裝入物理地址寄存器中。同時,將頁內地址d直接送入物理地址寄存器的塊內地址字段中。這樣,物理地址寄存器中的內容就是由二者拼接成的實際訪問內存的地址,從而完成了從邏輯地址到物理地址的轉換。

頁表基本分頁存儲管理方式

用固定大小的頁(Page)來描述邏輯地址空間,用相同大小的頁框(Frame)來描述物理內存空間,由操作系統實現從邏輯頁到物理頁框的頁面映射,同時負責對所有頁的管理和進程運行的控制。

頁表分級頁表

一個32位邏輯地址空間的計算機系統,頁大小為4KB,那麼頁表有一百萬條目。假設每個條目佔4B,則需要
二級頁表的頁表項 二級頁表的頁表項
4MB物理地址空間來存儲頁表本身。利用多級頁表,可以減少頁表所佔用的空間。
一個邏輯地址(32位系統,頁大小 4K) 可以被分為 :一個20位的頁號 +一個12位的偏移。如果對頁表進行再分頁,那麼頁號分解為:一個10位的頁號 +一個10位的偏移。因此,一個邏輯地址表示如下 :p1 是用來訪問外部頁表的索引, p2 是外部頁表的頁偏移。
此時,兩級32位分頁結構的地址轉換機制如下:
兩級頁表的地址轉化 兩級頁表的地址轉化

頁表具有TLB(轉換後備緩衝器)的頁表結構

轉換後備緩衝器TLB(translation lookaside buffer)是小、專用、快速
的硬件緩衝,只包括頁表中的一小部分條目。如果頁號在TLB中,得到幀號,訪問內存;否則從內存中的頁表中得到幀號,將其存入TLB,訪問內存。
帶TLB的地址轉化 帶TLB的地址轉化
參考資料
  • 1.    湯小丹 梁紅兵 哲鳳屏 湯子瀛 .《計算機操作系統》(第三版):西安電子科技大學出版社,2007