【问题标题】:How to use a page table to convert virtual address to physical address如何使用页表将虚拟地址转换为物理地址
【发布时间】:2011-07-23 20:55:07
【问题描述】:

考虑下面的页表来执行程序

虚拟页面#:0 1 2 3 4 5
页框编号:8 3 9 x 0 1

程序生成 32 位虚拟地址,每个页面由 512 个字组成。程序生成如下虚拟地址1749,映射到什么物理地址

【问题讨论】:

    标签: operating-system


    【解决方案1】:

    您首先计算出该地址属于哪个虚拟页面,与该虚拟页面的偏移量,然后使用您的页表查找等效的物理地址。

    假设虚拟地址空间是没有漏洞的线性空间,从地址到页面的转换可以通过除以页面大小(在您的情况下为 512)来完成。 页内的偏移量是虚拟地址与虚拟页起始地址的差值。

    在上面的示例中,虚拟页面是第 3 页,偏移量为 213。

    然后您在页表中查找与虚拟页 3 对应的物理页。这里是x。所以物理地址将是(页面开头的物理地址x + 到页面的偏移量),即(页面 X 的开头)+213。

    页面 X 的开头,再次假设没有孔的线性映射将是(页面大小 * x)。

    所以物理地址是:

    (page_size * x) + offset
    

    这里:

    (512 * x) + 213
    

    【讨论】:

    • so logbase2(512) = n 因此 n= 9. 所以偏移位 = 9. 我如何从那里开始
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 2019-02-28
    • 2010-09-26
    • 2018-12-04
    • 1970-01-01
    • 2017-07-07
    • 2015-01-29
    相关资源
    最近更新 更多