出于学习目的,您应该从普通的页表开始。开始时忽略倒置页表,因为它们在极少数处理器中使用过。
最简单的情况是单级页表。在这种情况下,逻辑地址由逻辑页号和该页内的偏移量组成。要将逻辑页转换为物理页框,您需要获取页码,并将其用作页表的索引。然后页表指定页面映射到的物理页框(如果有的话)。
下一个复杂级别是多级页表。在这种情况下,逻辑页号被分解为位字段,其中每个字段代表表中的一个级别。最高有效位字段在顶级页表的索引中。相应的页表条目引用另一个页表。下一个最高有效位字段是该页表的索引。该过程重复进行,直到您到达条目指定物理页框的最后一个页表级别。
请注意,在该系统中,页表从逻辑地址映射到物理页框。物理页框和逻辑地址之间没有直接的映射关系。
对于倒置页表,您必须重新学习所有内容。有一个页表,每个物理页框都有一个条目。页表指示映射到它的相应虚拟页(如果有)。
在倒排页表系统中,处理器可以直接从物理页框映射到逻辑页。为了从逻辑页框映射到物理页,处理器必须扫描页表(严重依赖缓存)。
正常页表的机制在系统之间几乎相同(主要区别在于级别数)。然而,在使用倒排页表的系统中没有这种相似性。
如果使用反向页表的系统使用单个系统范围的表(而不是每个进程一个表),则表中必须有一个 PID 字段来解决具有映射到不同物理页帧的相同逻辑页的进程的歧义。
在反向页表中查找逻辑页/PID 组合的一种方法是使用单独的哈希表。那就是你图中的PID。您的“p”似乎是逻辑页码。
要在现实世界中四处走动,您只需要知道倒排页表的存在及其基本操作即可。