Memory management 多级页表分层分页

Memory management 多级页表分层分页,memory-management,operating-system,Memory Management,Operating System,考虑一个具有32位虚拟地址和1KB页面的虚拟内存系统。每个页表条目需要32位。需要将页表大小限制为一页 需要多少级别的页表 其中两个级别的表有256个条目;一级表格 有64个条目。(8+8+6=22)。如果顶层页表有2^6 那么有多少页是可能的 如果中间级别的页表有2^6个条目,那么有多少页 可能吗 如果底层页面表有2^6个条目,那么有多少页面 可能吗 这样的系统上有2^32/2^10=2^22页。这意味着寻址一个页面只需要22位。为了简单实用,大多数现代系统会将其与32位对齐,并使用额外的位作

考虑一个具有32位虚拟地址和1KB页面的虚拟内存系统。每个页表条目需要32位。需要将页表大小限制为一页

  • 需要多少级别的页表
  • 其中两个级别的表有256个条目;一级表格 有64个条目。(8+8+6=22)。如果顶层页表有2^6 那么有多少页是可能的
  • 如果中间级别的页表有2^6个条目,那么有多少页 可能吗
  • 如果底层页面表有2^6个条目,那么有多少页面 可能吗

  • 这样的系统上有2^32/2^10=2^22页。这意味着寻址一个页面只需要22位。为了简单实用,大多数现代系统会将其与32位对齐,并使用额外的位作为标志,因此在32位页表条目中,页表地址有16MB。一个页面可以容纳256个条目,因此最深级别的页面总数必须达到2^22/256=16384。下一个级别将有16384/256=64;最高级别适合一页,因为64<256,因此答案是3

    如果您不使用32位对齐(这在现实世界中是不可行的),那么答案仍然是3,因为在22位时,每页最多有372个条目,因此,第一个为2^22/372=11275,第二个为11275/372=30,第三个为1

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


    然而,对于这两种解释中的任何一种,答案都是明确的3

    “希望将页表大小限制为一页”的含义是什么?在问题???@saikatas中,问题只是试图说明页表只能容纳一页,即1024kb。因此,当您计算出答案时,只需将1024字节作为表层次结构中任何元素的最大大小,因此正如我在答案中提到的,页表大小只能是256个条目,每个条目32位,因为32位是4字节,1024(页大小)/4=256。这有意义吗?