【发布时间】:2016-02-08 06:00:24
【问题描述】:
到目前为止,我得到了这个:
对于 VADDR = 0x5ddb,二进制表示为 0101 1101 1101 1011,因此我们知道 VPN = 101 = 5。
下一步是什么?
【问题讨论】:
标签: operating-system paging virtual-memory
到目前为止,我得到了这个:
对于 VADDR = 0x5ddb,二进制表示为 0101 1101 1101 1011,因此我们知道 VPN = 101 = 5。
下一步是什么?
【问题讨论】:
标签: operating-system paging virtual-memory
最高有效三位构成虚拟页号,其余十二位构成页框的偏移量。
在您的具体示例中,虚拟页码是5,正如您正确提到的那样,偏移量是
1101 1101 1011 = 0xddb = 3547
现在像这样继续:
使用虚拟页码作为页表的索引。第 5 个(从零开始)是0x80000006。
检查有效性位。它已设置,因此页面条目有效。如果它不是,则页面将不在内存中,并且会发生页面错误。
如图所示,条目的其余部分是页框号。它是第 6th 个页框,因此您可以通过将此数字乘以页框的大小(即 4 KiB)来计算页框的物理地址。因此,物理地址是
6 * 4 KiB = 24 KiB = 24576
将偏移量添加到页框的物理地址:
24576 + 3547 = 28123
你有你的地址。
虚拟地址0x5ddb对应所描述系统上的物理地址28123 = 0x6ddb。
【讨论】: