使用线性页表进行分页虚拟地址转换

时间:2015-11-07 00:42:52

标签: operating-system paging virtual-memory

我在做这个小练习时遇到了麻烦:enter image description here

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

下一步是什么?

1 个答案:

答案 0 :(得分:2)

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

1101 1101 1011 = 0xddb = 3547

现在就这样进行:

  1. 使用虚拟页码作为页表的索引。 5 th (从零开始)是0x80000006

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

  3. 如图所示,条目的其余部分是页面框架编号。它是6 th 页面框架,因此您可以通过将此数字乘以页面框架的大小(即4 KiB)来计算页面框架的物理地址。因此,物理地址是

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

    24576 + 3547 = 28123
    

    你有自己的地址。

  5. 虚拟地址0x5ddb对应于所述系统中的物理地址28123 = 0x6ddb