反向页表一般被视为使用正常的系统内存的TLB的片外扩展。与真正的页表不同,它不需要容纳目前所有的映射。
一般意义上,每个进程都有一个相关页表。该进程所使用的每个页都在页表中有一项。这种页的表示方式比较自然,这是因为进程是通过页的虚拟地址来引用页的。操作系统必须将这种引用转换成物理内存地址。这种方法的缺点之一是每个页表可能有很多项。这些表可能消耗大量物理内存,却仅用来跟踪物理内存是如何使用的。
反向页表对于每个真正的内存页或帧才有一个条目。每个条目包含保存在真正内存位置的页的虚拟地址以及拥有该页的进程的信息。因此,整个系统只有一个页表,对每个物理内存的页只有一条相应的条目。因为系统只有一个页表,而有多个地址空间映射物理内存,所以反向页表的条目中通常需要一个地址空间标识符,以确保一个特定进程的一个逻辑页可以映射到相应的物理帧。
0 留言