【发布时间】:2014-03-09 06:29:52
【问题描述】:
处理器使用 36 位物理地址和 32 位虚拟地址,页框大小为 4 KB。每个页表条目大小为 4 个字节。三级页表用于虚拟到物理地址的转换,其中虚拟地址的使用如下:
位 30 - 31 用于索引到第一级页表
位 21 - 29 用于索引到二级页表
位 12 - 20 用于索引到第三级页表
位 0 - 11 用作页面内的偏移量
寻址一级、二级和三级页表的页表项中的下一级页表(或页框)所需的位数分别为?
这是 GATE 2008 提出的一个问题。
我的分析: 最大页框数 = (物理地址大小) / (页面大小) = 2^36 / 2^12 = 2^24。
因此,24 位足以索引第三级页表中的页码。现在我们必须找出第三层有多少页表。假设 9 位用于索引到第 3 级页表。所以第 3 级有 2^9 个页表。这意味着 2^32 个虚拟空间包含在 2^9 个页表中,因此每个页表的条目 = 2^32/2^9 = 2^23。因此,l2 页表条目中需要 23 位来索引 3 级页表中特定页表的条目。 L1 页表的 L2 中有 2^9 页表,我们需要到达这 2^9 页表中的任何一个。所以 L1 需要 9 位。
这种分析似乎不正确。我很困惑。有人可以解释一下这些概念吗?
【问题讨论】:
标签: operating-system paging virtual-memory