我无法理解脏位的效用,这在页面替换期间应该很有用,以标记脏页。 交换空间是一个磁盘部分,操作系统将页面放入不适合主存储器的页面。那么,为什么一个不脏的页面不应该写在磁盘上呢?
让我们举一个从内存换到磁盘的页面。在这一点上,让我们假设它首先再次移动到主存储器然后再次移回磁盘。 当它被移动到主存储器时,我认为磁盘不会保留它的副本。 因此,即使这个页面在主内存中没有变脏,为什么在从主内存中再次释放它时不应该在磁盘上重写它?
答案 0 :(得分:1)
当页面换回内存(从磁盘加载到RAM)时,交换文件中的位不会无效或被擦除-它们仍包含与页面从RAM换到磁盘时写出的值相同的值。因此,当它从磁盘交换到RAM时,RAM和磁盘中的页面是相同的。如果不执行任何写操作,则页面的RAM和磁盘(交换)版本将保持不变。如果内核决定再次将该页面从RAM中换出,则无需将其写入磁盘(交换),因为磁盘上已经有正确的页面内容。因此,可以简单地释放页面并将其用于其他目的。但是,如果执行了写操作,则磁盘上和交换中的页面版本是不同的,在这种情况下,脏位被设置为指示该页面必须先写入磁盘才能重用。
答案 1 :(得分:0)
每当对页面进行写操作时,使用脏位设置该位的处理器。
如果该位清零,则表示该页面尚未更改。如果操作系统需要页面输出该页面,则它知道它不必将该页面(带有清除脏位)写回页面文件。