【问题标题】:Paged virtual address translation using a linear page table使用线性页表的分页虚拟地址转换
【发布时间】:2016-02-08 06:00:24
【问题描述】:

我在做这个小练习时遇到了麻烦:

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

下一步是什么?

【问题讨论】:

    标签: operating-system paging virtual-memory


    【解决方案1】:

    最高有效三位构成虚拟页号,其余十二位构成页框的偏移量。
    在您的具体示例中,虚拟页码是5,正如您正确提到的那样,偏移量是

    1101 1101 1011 = 0xddb = 3547
    

    现在像这样继续:

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

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

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

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

      24576 + 3547 = 28123
      

      你有你的地址。

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

    【讨论】:

      猜你喜欢
      • 2011-07-23
      • 2014-03-23
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多