【发布时间】:2021-12-14 16:05:51
【问题描述】:
我想知道上述哪种机制是首先在 Linux 中引入的。 其中两个是脏位跟踪机制。
第一个是通过 /proc/clear_refs fs 完成的,如下所示:一旦用户向 /proc/$pid/clear_refs 写入“4”,内核就会取消设置进程所有页面的脏位,并在下一次尝试时要访问这些页面,会触发页面错误并重置脏位(由内核),然后用户可以通过 /proc/pagemap 收集已访问的页面。
第二个允许用户自己处理页面错误:用户首先要求内核保护通过 mmap 分配的内存中的给定区域;在任何尝试访问该区域中的页面后,都会产生页面错误,对此的处理将转移给用户,例如,用户可能会要求内核允许访问或拒绝访问。因此,通过这种方式,人们不再需要通过 pagemap 来了解哪些页面已被访问。
【问题讨论】:
标签: linux memory-management linux-kernel