【问题标题】:Valid Bit and Dirty Bit in page tables页表中的有效位和脏位
【发布时间】:2021-07-02 21:44:51
【问题描述】:

页表中的有效位是否会被关闭(设置为无效)?此外,在使用脏位时,我知道只要在相关页表条目上有写入请求,就应该设置脏位。但是,为什么脏位有用呢?

【问题讨论】:

    标签: memory-management operating-system page-tables


    【解决方案1】:

    页表中的有效位是否会被关闭(设置为无效)?

    1. 当由于创建了一个页表条目 (pte) 而初始化页表时,该页表中的其他 pte 需要标记为无效,以便它们不会被使用。
    2. 如果页面被从内存中踢出/换出,则需要将其 pte 标记为无效,以便操作系统可以在以后的任何读/写操作时拦截页面错误并将正确的内存换回。

    当使用脏位时,我知道脏位是 应该在页表上有写请求时设置 有问题的条目。但是,为什么脏位有用呢?

    脏位允许您检测仅在内存中写入了哪些页面(尚未传播回磁盘)。如果操作系统想要逐出脏页,它会看到已设置的脏位,现在知道应该在逐出页面之前将更改写回磁盘。如果没有脏位,1) 操作系统要么需要将页面的每一位与其支持的磁盘页面进行比较,以检查它在驱逐它之前是否是脏的,或者 2) 它必须采用繁重的“总是写-每次页面驱逐的“返回”策略,即使该页面是干净的、未写入的页面。

    【讨论】:

    • 非常感谢!
    • 嗨@shinybolt9,不客气。如果您认为这个或任何答案已经解决了您的问题,请通过单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 2021-12-04
    • 2016-01-05
    • 1970-01-01
    • 2016-01-01
    • 2020-09-07
    • 2012-11-13
    • 1970-01-01
    相关资源
    最近更新 更多