繁体   English   中英

Tanenbaum的现代操作系统中的页表大小练习

[英]Page table size exercise from Tanenbaum's Modern Operating Systems

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

我不明白正确答案背后的原因,这确实是正确的,还是我遗漏了一些东西?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM