多级页表概念

时间:2017-04-13 13:14:28

标签: linux memory-management x86 operating-system paging

3级页面表

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

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

怎么可以使用它,还是会被浪费?

4级页面表

哪个图表可以澄清清晰的视图:

  • MMU
  • Page table
  • 页表条目
  • 虚拟地址
  • 实际地址?

1 个答案:

答案 0 :(得分:2)

  

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

页面不对偏移负责。

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

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

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

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

让我们做 2级页面表。外部目录(也称为页面目录)将具有 2 ^ 10 条目,每个入口点位于页面表上,其中还有2 ^ 10个条目。

no description

10位将标记PGDIR中指向页表的条目,在我们访问页表后,我们将使用接下来的10位来查找包含物理帧数的条目。

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

enter image description here
页表中的每个条目都有32位,前20个用于引用物理帧,接下来的12个是用于告诉谁read/write以及更多...的标志。 enter image description here