鉴于: 32位虚拟地址, 每页 4KiB, 4B - 页表条目的大小, 1 - 地址空间 GiB 大小
对于一个进程使用1GiB地址空间,当页表目录有1024个表项时,找出一级页表和二级页表的大小。 对于 2 级页表 - 页表的最大和最小大小是多少?
所以...我知道页偏移量是 12 位,页码是 20 位。因此我们得到了 2^20 个条目,因此 1 级页表的总页表大小应为 4.2 MB。
但是如何计算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
关于memory - 如何计算二级页表大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50449484/