Résultat de l'affichage du programme fork_a.cxx :

duo/mathieu>fork_a
Avant le fork()
Apres le fork() : pid = 11046
Apres le fork() : pid = 0
duo/mathieu>

    Le processus affiche "Avant le fork", puis se duplique.
    L'ordonnanceur (scheduler) élit successivement

    La seule contrainte est que le shell ne peut reprendre la main que lorsque le processus père est terminé. En revanche le choix de l'ordonnanceur doit être considéré comme aléatoire. Les ordres (2) - (1) - (3) et (1) - (3) - (2) sont aussi possibles, provoquant respectivement les affichages :
 
duo/mathieu>fork_a
Avant le fork()
Apres le fork() : pid = 0
Apres le fork() : pid = 11046
duo/mathieu>

et
 
duo/mathieu>fork_a
Avant le fork()
Apres le fork() : pid = 11046
duo/mathieu>Apres le fork() : pid = 0
 

    Dans ce dernier cas, l'utilisateur croit en général qu'il n'a pas la main et que le processus fils tourne encore, et il appuie alors sur "enter", inutilement, et il provoque l'affichage d'un nouveau prompt de la part du shell qui a traité une commande vide. Il m'a fallu plus de 80 essais pour obtenir une seule fois le deuxième affichage et 39 pour avoir une seule fois le troisième.