页表中的有效位和脏位

问题描述 投票:0回答:1

是否有任何原因导致页表中的有效位被关闭(设置为无效)?另外,在使用脏位时,我知道只要有问题的页表条目上存在写入请求,就应该设置脏位。然而,为什么脏位有用呢?

memory-management operating-system page-tables
1个回答
1
投票

是否有任何原因导致页表中的有效位被关闭(设置为无效)?

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

此外,在处理脏位时,我知道脏位是 每当页表上有写请求时就应该设置 有问题的条目。然而,为什么脏位有用呢?

脏位允许您检测哪些页面已仅写入内存(尚未传播回磁盘)。如果操作系统想要逐出脏页,它会看到脏位已设置,并且现在知道它应该在逐出该页之前将更改写回磁盘。如果没有脏位,1)操作系统需要将页面的每一位与其后备磁盘页面进行比较,以在驱逐之前检查它是否脏,或者2)它必须采用繁重的“立即写入” back”(通常称为“write-through”)策略,其中每次写入内存都必须立即写入磁盘。

© www.soinside.com 2019 - 2024. All rights reserved.