Si fork
est appelé plusieurs fois à partir du processus parent d'origine, chacun des enfants et le parent auront leurs pages marquées en lecture seule. Lorsqu'un processus enfant tente d'écrire des données, la page du processus parent est copiée dans son espace d'adressage et la page copiée est marquée comme inscriptible dans l'enfant mais pas dans le parent.
Si fork
est appelée depuis le processus enfant et que le petit-enfant tente d'écrire, la page du parent d'origine est copiée dans le premier enfant, puis dans le petit-enfant, et tout est marqué comme accessible en écriture.
La page d'origine n'est marquée inscriptible que si elle appartient à un seul processus, ce qui pourrait ne pas être le cas s'il y avait plusieurs fourches. La nouvelle page est toujours marquée comme accessible en écriture car elle n'appartient qu'au processus qui a tenté de l'écrire.