6. Mémoire après fork et copie sur écriture
Après fork, une variable existant avant l'appel possède initialement la même valeur logique dans le père et le fils. Si le fils modifie sa copie, celle du père ne change pas. Les deux espaces ne sont pas une mémoire partagée ordinaire.

Après fork, l’enfant remplace sa copie de x par 99. Le parent attend sa terminaison, puis observe encore 10 dans son propre espace.
- Les PID différents identifient deux processus.
- Cette observation montre l’indépendance logique des valeurs; elle ne mesure pas les copies physiques de pages.
Lire la capture en texte
python3 demo-fork.py # os.fork(), x = 10 puis x = 99 dans l’enfant
Avant fork : x = 10
Enfant : PID=726 ; x = 99
Parent : PID=723 ; x = 10Démonstration Station Minuit · Ubuntu 24.04 / WSL2 · Python 3 · 15 octobre 2026 (Toronto). Sortie réelle remise en page et capturée; exemple ajouté, distinct du matériel officiel.
Une duplication physique immédiate de toutes les pages serait coûteuse, surtout si le fils appelle ensuite exec. Les systèmes modernes emploient donc la copie sur écriture (copy-on-write) :
- le père et le fils référencent initialement les mêmes pages physiques protégées;
- une tentative d'écriture provoque une faute contrôlée;
- le noyau copie seulement la page concernée;
- le processus qui écrit reçoit sa copie privée;
- l'autre processus conserve l'ancienne page.
Le code non modifiable peut aussi rester partagé physiquement. Cette optimisation est invisible pour le programme : l'isolation logique doit demeurer exacte.
Pour échanger volontairement des données, des processus distincts utilisent un mécanisme explicite : tube, socket, fichier, mémoire partagée, signal ou autre service du système.