Processus fils

Définition, exemples et bonnes pratiques

À retenir

  • Le fils possède son propre identifiant unique (le PID).
  • Il est créé à partir d'une copie ou d'une extension du processus père.
  • S'il perd son père, il devient un « orphelin » et est adopté par le processus racine du système.

Un processus fils est une tâche informatique créée et lancée par un autre programme, appelé « processus père ». C'est un peu comme un employé à qui un manager confie une mission spécifique : le fils travaille de son côté tout en restant sous la supervision indirecte de celui qui l'a lancé.

Étymologie

Calque de l'anglais child process. Cette terminologie familiale est utilisée depuis les débuts des systèmes multitâches (comme Unix dans les années 1970) pour décrire la hiérarchie et la dépendance lors de l'exécution des logiciels.

Exemples d'usage

  • Un navigateur web qui crée un processus fils pour chaque onglet ouvert afin d'éviter que tout le logiciel ne plante si une seule page web rencontre une erreur.
  • Un serveur de fichiers qui lance un nouveau processus fils pour chaque utilisateur qui se connecte afin de traiter les demandes en parallèle.

Cas d'usage

Ce concept est utilisé dans les systèmes d'exploitation pour permettre le multitâche, l'isolation des ressources (sécurité) et la répartition des calculs sur plusieurs cœurs de processeur.

Bonnes pratiques

Il est crucial que le processus père récupère le signal de fin de ses fils. Si un fils se termine mais que le père ne reconnaît pas sa fin, le fils reste dans le système sous forme de « processus zombie », ce qui peut finir par saturer les ressources si cela se répète trop souvent.

Synonymes

sous-processus tâche fille fork

Antonymes

processus père processus parent

Conseil

Pour bien comprendre ce concept, visualisez l'« arbre des processus » de votre ordinateur (avec le Moniteur d'activité sous macOS ou le Gestionnaire des tâches sous Windows) : vous verrez que presque tous les programmes sont les fils d'un autre programme plus global.

Questions fréquentes

Quelle est la différence avec un thread ?

Un processus fils a son propre espace mémoire bien séparé, ce qui est plus sûr, alors que les threads partagent la même mémoire, ce qui est plus rapide mais plus risqué en cas d'erreur.

Comment un fils communique avec son père ?

Ils utilisent des mécanismes appelés IPC (Inter-Process Communication), comme des tubes (pipes) ou des signaux.