Memory 如何计算2级页面表格大小?

Memory 如何计算2级页面表格大小?,memory,memory-management,computer-science,virtual-memory,Memory,Memory Management,Computer Science,Virtual Memory,鉴于: 32位虚拟地址, 每页4KB, 4B-页面表格中心的大小, 1-地址空间的GiB大小 对于使用1GiB地址空间的进程,当页表目录有1024个条目时,找出1级页表和2级页表的大小。 对于两级页表-页表的最大和最小大小是多少 所以。。。我知道页偏移量是12位,页码是20位。所以我们得到了2^20个条目,所以对于一级页面表,页面表的总大小应该是4.2MB 但如何计算两级页面表的大小?任何提示?可以这样检查两级案例: 一级将有一页 将有足够的页面用于第二级所需的地址空间 现在,每个级别2页面可以

鉴于: 32位虚拟地址, 每页4KB, 4B-页面表格中心的大小, 1-地址空间的GiB大小

对于使用1GiB地址空间的进程,当页表目录有1024个条目时,找出1级页表和2级页表的大小。 对于两级页表-页表的最大和最小大小是多少

所以。。。我知道页偏移量是12位,页码是20位。所以我们得到了2^20个条目,所以对于一级页面表,页面表的总大小应该是4.2MB


但如何计算两级页面表的大小?任何提示?

可以这样检查两级案例:

  • 一级将有一页
  • 将有足够的页面用于第二级所需的地址空间
  • 现在,每个级别2页面可以映射2^10*2^12字节,因为它有2^10个条目,并且每个条目都指向一个2^12字节的页面。这将产生2^22字节

    现在,您的目标地址空间是2^30(1GB),因此需要2^30/2^22或2^8个级别2页面。此外,您还需要一个一级页面


    使用的总页数为1+2^8或257页或1028 KB

    OK,因此最大值为1GB,页表看起来像2^8第2级页面,每个页面有2^10个条目,每个实体为4KB,因此大小为2^8*2^10*4KB=1GB。但是最低限度呢?是4MB吗?我们有一个二级页面,所以大小只有2*10*4KB=4MB?等等。。。表页的大小是否为1GB?然后最大值是2^10*2^10*4KB,最小值是2^10*4KB?不,页表只是略大于1MG最小地址空间是4K,一页的大小。在两级系统中,这将需要一个一级页面和一个二级页面。请记住,页表不要求是完整的。事实上,在给定的参数下,这个问题没有答案。