【问题标题】:How to calculate 2 level page table size?如何计算 2 级页表大小?
【发布时间】:2018-05-21 12:59:42
【问题描述】:

鉴于: 32位虚拟地址, 每页 4KiB, 4B - 页表条目的大小, 1 - GiB 大小的地址空间

对于使用1GiB地址空间的进程,当页表目录有1024个条目时,找出1级页表和2级页表的大小。 对于 2 级页表 - 页表的最大和最小大小是多少?

所以...我知道页面偏移量是 12 位,页码是 20 位。所以我们得到了 2^20 个条目,所以 1 级页表的总页表大小应该是 4.2 MB。

但是如何计算 2 级页表的大小?有什么建议吗?

【问题讨论】:

  • 其实在给定的参数下这个问题是没有答案的。

标签: memory memory-management computer-science virtual-memory


【解决方案1】:

可以这样检查两级情况:

  1. 第一级会有一页。
  2. 将有足够的页面用于二级所需的地址空间。

现在每个 2 级页面可以映射 2^10 * 2^12 字节,因为它有 2^10 个条目,每个条目都指向一个 2^12 字节的页面。这会产生 2^22 个字节。

现在您的目标地址空间为 2^30 (1GB),因此您需要 2^30/2^22 或 2^8 个 2 级页面。此外,您需要一级一级页面。

总共使用了 1 + 2^8 或 257 页或 1028 KB

【讨论】:

  • 好吧,所以最大是 1GB,页表看起来像 2^8 个二级页面,每个有 2^10 个条目,每个条目是 4KiB,所以大小是 2^8 * 2^10 * 4KiB = 1GB。但是最低限度呢?是4MB吗?我们有 1 个 2 级页面,所以大小只有 2*10 * 4KiB = 4MB?
  • 等待...表格页的大小是 1GB 吗?然后最大值是 2^10 * 2^10 * 4KiB 最小值是 2^10 * 4KiB?
  • 不,页表只是比 1 Meg 多一点
  • 地址空间最小为4K,一页大小。在两级系统中,这将需要一级一级页面和一级二级页面。请记住,页表不需要是满的。他们只能有一个条目。
猜你喜欢
  • 2015-07-20
  • 2011-12-16
  • 2016-02-09
  • 2013-04-25
  • 2023-03-22
  • 2014-07-28
  • 2015-02-26
  • 1970-01-01
相关资源
最近更新 更多