我决定通过解决A. Tanenbaum的“现代操作系统”中的问题来测试我对操作系统内部的知识。 并遇到以下问题:
假设一台计算机具有48位虚拟地址和32位物理地址。如果页面为4 KB,那么如果页面只有一个级别,那么页面表中有多少个条目?
一如既往,因为我们有48位虚拟地址空间,所以我们需要能够将每个内存地址映射到物理地址。因此,我们有2 ^ 48个地址,每个页面为4KB = 2 ^ 12,因此我们在页面表中需要2 ^ 36 = 2 ^(48-12)个条目。因此,当我们获得48位地址时,我们使用较高的36位作为页面表的索引来查找页面框架的数量,然后使用较低的12位作为页面框架中的偏移量。
然后我在解决方案手册中查找了正确答案:
我们每页需要一个条目,或者2 ^ 24 = 16×1024×1024个条目,因为 页码字段中有36 = 48 − 12位。
我不明白正确答案背后的原因,这确实是正确的,还是我遗漏了一些东西?
答案 0 :(得分:0)
您绝对正确。 如果您具有48位虚拟地址和4KB页面,则至少需要12位才能在页面中选择正确的字节。因此,您的页表中有2 ^ 48-2 ^ 12 = 2 ^ 36个条目,可以将虚拟地址转换为物理地址。 (其中一些会在您的磁盘上)。