考虑一个具有32位虚拟地址和1KB页的虚拟内存系统。每个页表条目都需要32位.希望将页表大小限制为一页。
发布于 2012-07-26 15:22:55
在这样的系统中有2^32/2^10 = 2^22页。这意味着只需要22位来寻址一个页面。为了简单实用,大多数现代系统都会将其与32位对齐,并使用额外的位作为标志,因此在32位页表条目中有16 MB的页表地址。一个页面可以容纳256个条目,在最深的级别上,总页数必须达到2^22 / 256 = 16384。下一个级别将有16384 /256个= 64;最高级别将适合于一个页面,因为64 <256个,因此答案是3。
如果不考虑32位对齐(在现实场景中这是站不住脚的),那么答案仍然是三个,因为在22位时,每页最多有372个条目,因此,第一页为2^22/ 372 = 11275,第二页为11275 / 372 = 30,第三页为1。
或者,你可以自上而下地解释它,所以不要从最深的层次开始,而是从顶层开始。在这种情况下,从顶部开始将导致最深层次的每页有最多未使用的条目。这显然是不理想的,最好在较高级别上有未使用的页表条目。
然而,无论哪种解释,答案都是明确的。
https://stackoverflow.com/questions/11671527
复制相似问题