页表的总内存和页数(来自电影《社交网络》)



看完电影《社交网络》(2010(后,我正在研究哈佛大学的样本问题,这似乎启发了编剧。我只是想刷新我对计算机体系结构的记忆。

一个示例问题:假设我们得到一台16位的计算机虚拟地址和256字节的页面大小。系统使用从地址0x0400开始的一级页表。(前几个页面是为硬件标志等保留的。也许你想DMA在您的16位系统上,谁知道呢?(假设页面表条目具有八个状态位:1个有效位、1个修改位、1位参考位和5个权限位(这是一个非常安全的系统(。有多少页?页面表需要多少内存?

遗憾的是,我发现自己对自己的答案没有完全的信心。我认为物理内存空间是2^16-2^10(当排除最大0x0400的内存空间时(,因此页数应该是252(=(2^16-2^10(/256(。假设每个物理内存条目的大小大至两个字节(PPN为8位+页面偏移量为8位(,则页面表应占504个字节(252个条目x 2个字节(。

我还在这里错过什么吗?

考虑到周围的文本,我认为"保留";意味着不可用于常规用户空间,即保留给MMIO地址。并不是说软件根本无法触及它。

因此,您希望能够将任何物理页面地址映射到虚拟地址(这样您的操作系统就可以读取/写入这些硬件标志(。

因此,您实际上想要所有256个PTE,而不是通过从虚拟页码中减去3来偏置页表索引。

但是是的,2字节PTE(页表条目(由8个标志位和8个页帧(物理页(页码位组成,您需要256个。(虚拟地址的高8位,即虚拟页码,可以具有256个值(。

相关内容

最新更新