Operating system 使用线性页表的分页虚拟地址转换

Operating system 使用线性页表的分页虚拟地址转换,operating-system,paging,virtual-memory,Operating System,Paging,Virtual Memory,我做这个小练习有困难: 到目前为止,我得到了这个: 对于VADDR=0x5ddb,二进制表示是0101101101101011,因此我们知道VPN=101=5 下一步是什么?最重要的三位构成虚拟页码,剩余的十二位构成页面帧的偏移量。 在您的具体示例中,正如您正确提到的,虚拟页码为5,偏移量为 1101 1101 1011 = 0xddb = 3547 现在继续这样做: 使用虚拟页码作为页表的索引。第五个(从零开始)是0x8000006 检查有效位。它已设置,因此页面条目有效。如果是而不是,则页

我做这个小练习有困难:

到目前为止,我得到了这个:
对于VADDR=
0x5ddb
,二进制表示是
0101101101101011
,因此我们知道
VPN=101=5


下一步是什么?

最重要的三位构成虚拟页码,剩余的十二位构成页面帧的偏移量。
在您的具体示例中,正如您正确提到的,虚拟页码为
5
,偏移量为

1101 1101 1011 = 0xddb = 3547
现在继续这样做:

  • 使用虚拟页码作为页表的索引。第五个(从零开始)是
    0x8000006

  • 检查有效位。它已设置,因此页面条目有效。如果是而不是,则页面将不在内存中,并且会发生页面错误

  • 如图所示,条目的其余部分是页码。这是第6个页面框架,因此您可以通过将该数字乘以页面框架的大小来计算页面框架的物理地址,即4kib。因此,物理地址是

    6 * 4 KiB = 24 KiB = 24576
    
  • 将偏移量添加到页框的物理地址:

    24576 + 3547 = 28123
    
    你有你的地址

  • 虚拟地址
    0x5ddb
    对应于所述系统上的物理地址
    28123=0x6ddb