如何计算2级页表大小?

时间:2018-05-21 12:59:43

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

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

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

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

但是如何计算2级页表的大小?任何提示?

1 个答案:

答案 0 :(得分:1)

因此可以检查两级案件:

  1. 第一级会有一页。
  2. 第二级所需的地址空间将有足够的页面。
  3. 现在每个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