页表的条目是表示页面还是线性地址?

时间:2015-04-24 02:08:12

标签: linux-kernel

我读过“理解linux内核”一书,关于地址转换的主题让我很困惑。 Book说每个线性地址有三个字段:Directory,Table和Offset。目录字段与目录表相关,而表字段与页表相关。

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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

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

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

多级页表的条目可以映射到两个不同的位置:

  1. 它们可以直接映射到虚拟内存地址(如单级表)。
  2. 他们可能会映射到二级(或三级等)页面表

    以下是多级页表的示例: enter image description here

  3. 请记住,每个页表条目都包含一个虚拟地址。操作系统有责任将虚拟地址转换为物理地址(其优点超出了此特定主题)。

    大多数寻呼系统还维护一个帧表,用于跟踪已使用和未使用的帧。传统上,帧表是与页表不同的数据结构。

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