【问题标题】:x86 dirty bit in page table entry页表条目中的 x86 脏位
【发布时间】:2014-02-04 07:34:56
【问题描述】:

英特尔架构手册说,当第一次对内存页进行写访问时,CPU 会设置页表条目的脏位。我对此问题有疑问。

1. The 'dirty bit' in this context is used for guaranteeing the correctness of disk swapping in, out of memory pages. is this correct?
2. Is this automatically performed by the hardware? or is this an implementation of operating system?
3. If it is automatically performed by the hardware, is there any noteworthy difference compared to the usual memory updates which are performed by software instructions?

提前谢谢你。

【问题讨论】:

    标签: memory x86 paging dirty-data


    【解决方案1】:

    1 此上下文中的“脏位”用于保证磁盘换入、换出内存页面的正确性。这是正确的吗?

    这个硬件部分支持分页。该位帮助操作系统以非常快速和有效的方式确定必须将哪个页面转储到磁盘。因为如果内存页面将分页到磁盘并且页面文件中已经分配了空间,如果该标志被清除,我们就不能将该页面转储到磁盘。这只是操作系统如何在分页中使用此标志的示例。

    2这是由硬件自动执行的吗?还是这是操作系统的实现?

    软件清除此标志。硬件设置此标志:

    3.7.6 页面目录和页面表条目

    脏 (D) 标志位 6

    设置时指示页面是否已写入。 (这个标志是 不在指向页表的页目录条目中使用。)内存 管理软件通常会在页面被清除时清除此标志 最初加载到物理内存中。然后处理器设置这个 标记第一次访问页面以进行写操作。

    .

    3如果由硬件自动执行,与通常由软件指令执行的内存更新相比,有什么值得注意的区别吗?

    它们具有 LOCK 语义和原子性。

    【讨论】:

    • 在内存压力下,读/写权限和没有设置脏位的页面会被丢弃或换出到磁盘吗?
    猜你喜欢
    • 2015-11-17
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2019-09-17
    • 1970-01-01
    • 2015-07-17
    • 2012-11-13
    相关资源
    最近更新 更多