page table 的条目代表一个页面还是一个线性地址?

Does an entry of page table represents a page or a linear address?

我在读Understanding the linux kernel这本书,关于地址转换的话题让我很困惑。书上说每个线性地址都有三个字段:Directory、Table 和 Offset。目录字段与目录 Table 相关,Table 字段与页面 Table 相关。

有一件事它没有指出,或者我可能会错过,是表中的每个条目是否与一个页面(一组线性地址)相关,或者与一个单独的线性地址相关。

有人可以帮助我吗?

好的,所以有(至少)两种类型的页面 table:单级和多级。

单级页面 tables 的条目直接映射到虚拟地址。

多级页面 tables 的条目可以映射到两个不同的地方:

  1. 它们可能直接映射到虚拟内存地址(如单级tables)。

  2. 它们可能会映射到二级(或三级等)页面 tables

    这是一个多级页面的示例 table:

记住,每个页面 table 条目都包含一个虚拟地址。操作系统负责将虚拟地址转换为物理地址(其好处不在本主题范围内)。

大多数寻呼系统还维护一个框架 table,用于跟踪已使用和未使用的框架。传统上,框架 table 与页面 table.

是不同的数据结构

您可以阅读有关分页的更多信息 tables here。 您可以阅读第 tables here.