多级页表的概念

问题描述:

3级页表多级页表的概念

  • 哪个级别包含的页面的偏移?
  • 每个关卡的页面大小会相同还是不同?

如果第二级和第三级页表大小为2^25字节。每个包含2^9个条目。页表项的大小是4字节。使用(2^25 - 2^9 * 4)B。

这怎么可能被使用,否则会被浪费?

4级页表

哪个图可以清楚的明确的看法:

  • MMU
  • 页表
  • 页表项
  • 虚拟地址
  • 物理地址?

哪个级别包含页面的偏移量?

页面不负责抵消。

让我们做一个例子可以帮助你理解:

  • 32位操作系统
  • 页面大小4096字节
  • 4 GB的物理内存

要引用页面的每个字节,我们需要记录(4096)= 12位。

现在我们需要计算不同页面的数量,即4GB/4KB = 1M页面。 1M是2^20不同的页面。我们需要20位来引用每个页面。

让我们做一个2等级页表。外部的也称为页面目录将具有2^10条目,每个入口点在页表,其也具有2^10个条目。

no description

10位将标志着它指向一个页表,当我们访问页表,我们将用接下来的10位找到其中包含物理帧的数量的条目PGDIR的条目。

每当CPU运行一个命令,它将使用前20位来查找帧,并将使用最后12位作为该页面内的引用。

enter image description here
页表中的每个条目有32位,第20引用物理帧,并且未来12被用来标志告诉谁又能read/write更多...
enter image description here