【问题标题】:Multi-level page tables Hierarchical paging多级页表分层分页
【发布时间】:2012-07-25 04:06:36
【问题描述】:

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

  1. 需要多少级页表?
  2. 其中两个级别的表有 256 个条目;一个级别的表 有 64 个条目。(8+8+6=22)。如果顶层页表有 2^6 那么可以输入多少页呢?
  3. 如果中级页表有 2^6 个条目,那么有多少页 可能吗?
  4. 如果底层页表有 2^6 个条目,那么有多少页 可能吗?

【问题讨论】:

    标签: memory-management operating-system


    【解决方案1】:

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

    如果您不考虑 32 位对齐(这在现实世界中是站不住脚的),那么答案仍然是三个,因为在 22 位上,每页最多有 372 个条目,因此 2^22/ 372 = 第一个为 11275,第二个为 11275 / 372 = 30,第三个为 1。

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

    然而,对于这两种解释中的任何一种,答案无疑是 3。

    【讨论】:

    • 问题中“希望将页表大小限制为一页”是什么意思??
    • @SaikatDas 这个问题只是想说页表只能容纳一页,即1024kb。因此,当您找出答案时,您只需将 1024 字节作为表层次结构中任何元素的最大大小,因此正如我在答案中提到的,页表大小只能是 32 位的 256 个条目,因为 32 -bits 是 4 个字节和 1024(一个页面大小)/4 = 256。这有意义吗?
    猜你喜欢
    • 2011-07-30
    • 2013-11-09
    • 2011-03-05
    • 2015-06-25
    • 2020-08-12
    • 2014-03-09
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多