来自Tanenbaum现代操作系统的页面大小练习

问题描述 投票:0回答:1

我决定通过解决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位。

我无法理解正确答案背后的推理,它确实是正确的还是我错过了什么?

architecture operating-system virtual-memory
1个回答
0
投票

你是绝对正确的。如果您有48位虚拟地址和4KB页面,则至少需要12位才能在页面中选择正确的字节。因此,您的页表中有2 ^ 48-2 ^ 12 = 2 ^ 36个条目可将虚拟地址转换为物理地址。 (其中一些将在您的磁盘上)。

© www.soinside.com 2019 - 2024. All rights reserved.