来自过去操作系统决赛的示例问题,我如何计算这种问题?
一台计算机有一个 64 位的虚拟地址空间和 2048 字节的页面。页表条目占用 4 个字节。使用多级页表是因为每个表都必须包含在一个页中。需要多少级?
我将如何计算这个?
来自过去操作系统决赛的示例问题,我如何计算这种问题?
一台计算机有一个 64 位的虚拟地址空间和 2048 字节的页面。页表条目占用 4 个字节。使用多级页表是因为每个表都必须包含在一个页中。需要多少级?
我将如何计算这个?
由于页表必须适合一页,因此页表大小为 2048 字节,每个条目为 4 字节,因此一个表包含 2048/4=512 个条目。要处理 512 个条目,它需要 log2(512)=9 位。可用于对每个页面级别的条目进行编码的总位数为 64-log2(2048)=53 位(地址空间的位数减去页面偏移位)。因此,所需级别的总数为 53/9=6(向上取整)。
x86-64 默认页表大小为 4096 字节,每个页表必须适合一页,页表条目为 8 字节。当前的 CPU 仅实现 48 位的虚拟地址空间。需要多少页表级别?