【问题标题】:How to determine if multiple virtual addresses belong to the same page?如何判断多个虚拟地址是否属于同一个页面?
【发布时间】:2014-12-23 06:50:57
【问题描述】:

假设我们有一个 32 位的地址空间和一个页面大小为 4096 字节的线性页表,我知道为了找到一个特定的虚拟地址的页框,我们可以右移出地址值的 12 位。

但是,不同的地址在同一个页面中有不同的“位置”,我怎么知道两个地址是否来自同一个虚拟页面呢?

谢谢!

【问题讨论】:

    标签: c linux unix memory operating-system


    【解决方案1】:

    如果A和B是两个虚拟地址,页面大小为4096,

    A 和 B 在同一页面 IIF

        A /4096 = B / 4096
    

    或者

        A >> 12 = B >> 12
    

    或者

       A & ~4095 = B & ~4095 
    

    【讨论】:

    • 感谢您的回复。但这不是说 A 必须和 B 一样吗?
    • @Christin 不。整数除法截断,就像掩码使最低有效位无关等一样。
    • @TheParamagneticCroissant 我想如果我使用 Python 来计算这个我只需要做“A // 4096”而不是“A/4096”?
    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2022-01-21
    相关资源
    最近更新 更多