代码之家  ›  专栏  ›  技术社区  ›  Paz J

计算页面表的最小和最大大小

  •  1
  • Paz J  · 技术社区  · 9 年前

    给定32位的逻辑地址空间、8 MB的内存和4 KB的页面大小,计算2级分层分页表的最大大小。每个条目包含一个额外的4位控制序列。

    我已经将从LSB开始的逻辑32位地址分解为12位用于物理内存偏移,11位用于内部页面偏移(考虑到页面中的每个条目是2个字节),9位用于外部页面。

    当只有一个进程在使用内存时,我需要一页用于外部表,一页用于内部表,因此表只需要8KB。

    然而,我在最大情况下遇到了一些问题。如果整个逻辑地址空间都在使用中,那么表需要多少空间?

    1 回复  |  直到 9 年前
        1
  •  0
  •   Tony Tannous    9 年前

    32 bits logical address space
    8 MB RAM
    4 KB page size
    9 bits for outer page table
    11 bits for inner page table
    

    如果映射了所有逻辑内存空间:那么您就有了 2^9 来自级别1的每个条目都指向第二级页表,其中包含 2^11

    对于第二级页面表 2^9 其中,每一个都有 2^11 条目。即:

    那么外部页面呢? 你有一个,有2^9个条目,每个条目的大小为2B。

    这是1KB,但由于页面大小为4KB,它将获得整个页面。