【发布时间】:2016-02-09 19:01:16
【问题描述】:
有点像家庭作业的问题,但我更想围绕这个概念来思考:
如果我在页面大小为 8KB 且外部表有 1024 个条目的两级分页系统中有一个 32 位虚拟地址,我如何计算有多少位来表示(大小)第二级/外部页表?
答案应该是 9 位,但我不确定如何计算或公式是什么。
【问题讨论】:
标签: memory operating-system virtual-memory
有点像家庭作业的问题,但我更想围绕这个概念来思考:
如果我在页面大小为 8KB 且外部表有 1024 个条目的两级分页系统中有一个 32 位虚拟地址,我如何计算有多少位来表示(大小)第二级/外部页表?
答案应该是 9 位,但我不确定如何计算或公式是什么。
【问题讨论】:
标签: memory operating-system virtual-memory
虚拟地址分为:
PTI - 页表索引
1st PTI | 2nd PTI | Page Offset
“外页表”,即第一个 PTI,有 1024 个条目。需要 10 位 来表示 1024 种不同的状态,因为 2^10 = 1024。
页面偏移量必须能够索引 8 KiB 字节,因此它是 13 位 大。 8 KiB对应8192个不同的地址和2^13 = 8192。
现在,剩下第 2nd 页表。我们可以很容易地通过减法计算它的大小:
32 = 10 + 13 + x = 23 + x | - 23
9 = x
x = 9
因此“内部”页表最多可容纳2^9 = 512 个条目。
【讨论】: