2012-07-26 70 views
2

考虑一个具有32位虚拟地址和1KB页面的虚拟内存系统。每个页表项都需要32位。希望将页面大小限制为一页。多级页面表分层式寻呼

  1. 多少页表的水平所需的?
  2. 表在两个水平的有256个条目;表在一个水平 具有64个条目(8 + 8 + 6 = 22)。如果顶级页面表有2^6 条目,那么可能有多少页?
  3. 如果中间级别的页表有2^6个条目,那么可能有多少页是 ?
  4. 如果底层页面表有2^6个条目,那么可能有多少页面是 ?

回答

5

有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。

或者你可以从上到下解释它,所以不是从最深层次开始从顶层开始。在这种特殊情况下,从顶部开始将导致最深层次的每页最多未使用的条目。这显然不理想,最好在更高级别有未使用的页表条目。

无论使用哪种解释,然而,答案毫无疑问是3

+0

什么是“希望的是页表大小限制为一页。”在这个问题的意义? – 2012-07-26 22:27:40

+1

@SaikatDas问题只是试图说,页面表只能适合一个页面,这是1024kb。因此,当你找出答案时,你只需要1024字节是表中任何元素的最大尺寸,所以正如我在答案中所提到的那样,页表大小只能是每个32位的256个条目,因为32位是4个字节和1024(页面大小)/ 4 = 256。这有意义吗? – Dougvj 2012-07-27 19:23:55