Operating system 页面中的偏移量和条目数有什么区别?

Operating system 页面中的偏移量和条目数有什么区别?,operating-system,paging,Operating System,Paging,假设一台机器有38位虚拟地址和32位物理地址 (b) 对于两级页表、16 KB页和4字节条目,应为顶级页表字段分配多少位,为下一级页表字段分配多少位?解释一下 答案如下: 偏移量字段需要14位来寻址16 KB。这就为页面字段留下了24位。由于每个条目有4个字节,一个页面可以容纳16KB/4字节=2^12 因此,页表条目和需要12位来索引一页。因此,为每个分配12位 所有页面字段的地址都是2^38字节 我不太明白,如果我们有偏移量14位,用来在页面内寻址,那么什么是一个页面可以容纳16KB/4字

假设一台机器有38位虚拟地址和32位物理地址

(b) 对于两级页表、16 KB页和4字节条目,应为顶级页表字段分配多少位,为下一级页表字段分配多少位?解释一下

答案如下:

偏移量字段需要14位来寻址16 KB。这就为页面字段留下了24位。由于每个条目有4个字节,一个页面可以容纳16KB/4字节=2^12 因此,页表条目和需要12位来索引一页。因此,为每个分配12位 所有页面字段的地址都是2^38字节



我不太明白,如果我们有偏移量14位,用来在页面内寻址,那么什么是一个页面可以容纳16KB/4字节=2^12?另一个偏移量?

回答原始问题:
不,它不是第二个偏移量,只是用作第二级页面表中的索引。前12位用作第一级中条目的索引,第二12位用作第二页表中的索引


  • 38位虚拟地址
  • 16KB页面大小
  • 32位物理地址
我们可以得出结论:

  • 主内存大小为2^32=4GB
  • log2(16K)=14,14位用于偏移
  • 页面输入为4个字节
  • 38-14=24位至参考页
  • 2^24个不同的虚拟页面
  • 2^18不同的物理帧
  • 现在假设我们要为一个页面表分配空间,如果我们为它分配一个
    16KB
    的页面,它将有多少个条目16K/4=4K条目

    PAGE:
    0x000   entry 1
    0x001    
    0x002    
    0x003          
    -----------------
    0x004   entry 2
    0x005
    0x006    
    0x007
    ------------------
    .       entry 3
    .
    .
    . 
    ------------------
    0xFFC   entry 4096 (NOTE! 4K = 4096 as its 2^12)
    0xFFD
    0xFFE
    0xFFF
    ------------------
    
    现在,如果我们将页面的24位分成两半,12位用于第一级页面,12位用于第二级页面。我们能写多少页

    第一级有
    2^12
    不同的页面,其中每个入口指向第二级页面表。第二级页面表也有2^12个条目,每个条目指向一个大小为16KB的框架

    (2^12)*(2^12)*(2^14) = 2^38
    

    使用此两级页面表格,您可以寻址2^38个虚拟地址。

    @Cubancoffee我想我可能是单击错误或出错了。。。它应该是
    2^12*2^12*2^14=2^38
    。第一级有2^12个条目,第二级也有2^12个条目。将它们乘以页面大小。