反向頁表一般被視為使用正常的系統内存的TLB的片外擴展。與真正的頁表不同,它不需要容納目前所有的映射。
一般意義上,每個進程都有一個相關頁表。該進程所使用的每個頁都在頁表中有一項。這種頁的表示方式比較自然,這是因為進程是通過頁的虛拟地址來引用頁的。操作系統必須将這種引用轉換成物理内存地址。這種方法的缺點之一是每個頁表可能有很多項。這些表可能消耗大量物理内存,卻僅用來跟蹤物理内存是如何使用的。
反向頁表對于每個真正的内存頁或幀才有一個條目。每個條目包含保存在真正内存位置的頁的虛拟地址以及擁有該頁的進程的信息。因此,整個系統隻有一個頁表,對每個物理内存的頁隻有一條相應的條目。因為系統隻有一個頁表,而有多個地址空間映射物理内存,所以反向頁表的條目中通常需要一個地址空間标識符,以确保一個特定進程的一個邏輯頁可以映射到相應的物理幀。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!