来自Tanenbaum现代操作系统的页面大小练习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自Tanenbaum现代操作系统的页面大小练习相关的知识,希望对你有一定的参考价值。
我决定通过解决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个条目可将虚拟地址转换为物理地址。 (其中一些将在您的磁盘上)。
以上是关于来自Tanenbaum现代操作系统的页面大小练习的主要内容,如果未能解决你的问题,请参考以下文章
尚硅谷Hadoop的WordCount案例实操练习出现的bug