Una página sucia no requiere necesariamente una reescritura. Una página sucia es aquella en la que se escribió desde la última vez que el núcleo la marcó como limpia. Los datos no siempre necesitan guardarse nuevamente en el archivo original.
Las páginas son privadas, no compartidas, por lo que no se guardarán nuevamente en el archivo original. Sería imposible tener una página sucia respaldada por un archivo de solo lectura. Si la página necesita ser eliminada de la RAM, se guardará en el intercambio.
Las páginas que son de solo lectura, privadas y sucias, pero dentro del rango de un archivo mapeado en memoria, generalmente son páginas de datos que contienen constantes que deben inicializarse en tiempo de ejecución, pero que no cambian después de haber sido inicializadas. Por ejemplo, pueden contener datos estáticos que incorporan punteros; los valores del puntero dependen de la dirección en la que se asigna el programa o la biblioteca, por lo que debe calcularse después de que el programa se haya iniciado, con la página siendo leída-escrita en esta etapa. Después de calcular los punteros, el contenido de la página nunca cambiará en esta instancia del programa, por lo que la página se puede cambiar a solo lectura. Consulte "Búsqueda de páginas de memoria sucia" por stosb para ver un ejemplo con fragmentos de código.
Es posible que, más raramente, vea páginas de solo lectura, ejecutables, privadas y sucias; Esto sucede con algunos enlazadores que mezclan código y datos más libremente, o con una compilación justo a tiempo.
Además de los casos, las listas de Gilles :
Cuando un proceso se bifurca, el núcleo puede marcar todas sus páginas sucias como de solo lectura, y se compartirán entre el padre y el hijo. Cuando uno de los procesos escribe en la página, se producirá una excepción y el núcleo copiará la página y la marcará como editable. Esto ahorra el trabajo de copiar páginas que finalmente no son modificadas nuevamente por ninguno de los procesos. (Tenga en cuenta que en esta situación, las páginas están marcadas como de solo lectura en el hardware, pero el núcleo sabe que se pueden escribir).
fuente