如何根据 PT 条目检查页码?

How is the page number checked against the PT entries?

在 Silberschatz 等人的 操作系统概念一书中 和其他分页表示中,每个 Page Table (PT) 条目显示为包含 帧编号 (FN)。我一直在尝试解决有关此主题的一些问题,并且解决方案也假设相同。

我是这个话题的新手,我所读到的只是PT(或它的一部分)通常存储在物理内存中。这意味着 PT 必须从某个特定的物理地址开始。此值存储在 PTBR 中。所以当 CPU 生成一个逻辑地址,它被分为 页码 (PN) 和偏移量时,必须将 PN 与它在 PT 中的值进行比较以确定对应的FN对吧?假设,p=14。现在,二进制形式的 14 必须在 PT 中进行检查以找到条目 14。

那么,这是否意味着PT的每个表项中的一些位存储PN,其余位存储相应的FN?那么假设它只是 FN 位数的倍数并且完全忽略 PN 位来计算 PT 大小的问题呢?或者是因为PT中的值是按照PN的递增顺序存储的,所以对PTBR进行了一些计算以获得特定的PT条目?如果是这样,一旦完成访问特定 PT 条目的计算,内存访问如何从 PTBR 中的基地址切换到第 n 个条目?该交换机使用什么硬件?

基本上,我想知道的是,用于检查相应 FN 存储的索引 p(页码)在哪里?如何根据 PT 条目检查此值以获得 FN?

物理页框按顺序存储在硬件中。

逻辑地址由逻辑页码和页中的偏移量组成。对于页面翻译,我们可以忽略偏移量。

在最简单的情况下,页面 table 是页面 Table 条目的数组。逻辑页码用作此 table.

的指示

页面 Table 条目可能有也可能没有物理页框的值。

This means that the PT must start at some particular physical address. The address and size of the Page Table is usually specified by hardware registers.

So when the CPU generates a logical address which is divided into a Page Number(PN) and the offset, the PN must be compared against it's value in the PT to determine the corresponding FN, right?

您似乎在描述在少数处理器上使用的 INVERTED PAGE TABLE。在大多数系统中,页码是 table 的索引。没有可比性。