Sommaire

Arborescence de processus et PID

Tout processus est identifié par un numéro unique, le PID (Process IDentifier) ; le noyau utilise une table des processus pour la gestion des tâches.

Deux primitives du noyau Linux permettent de créer des processus : fork et exec (ces primitives programmables peuvent être invoquées dans un langage comme le C). La première permet à un processus de créer un clone de lui-même, la seconde servira à ce clone pour exécuter le code d’un autre programme à sa place. Il en résulte une affiliation entre processus ; on parle alors de processus fils et de processus pères.

Tout processus a donc obligatoirement un père, sauf le premier processus du système : init pour les distributions s’initialisant toujours suivant la méthode SysV, ou systemd sur la plupart des distributions récentes. L’un ou l’autre est donc l’ancêtre de tous les processus du système et son PID est 1.

Le PID affecté à un processus est donné par le noyau Linux au lancement du programme. Il n’existe pas de moyen de prédire ce numéro.