Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

Semaine 3 — Processus et appels système

7. Terminaison, zombies et orphelins

LECTURE 10 / 231 repère · 1 captureSynthèse avec omissions acceptées

7. Terminaison, zombies et orphelins

Un processus peut terminer normalement, appeler exit, recevoir un signal, être forcé à terminer ou subir une erreur fatale comme une faute de segmentation. Sous Unix, kill signifie plus généralement « envoyer un signal »; le résultat dépend du signal.

Sur le terrain / Capture LinuxS03-ZOMBIE
Un zombie disparaît après sa collecte. Z est l’état zombie : l’enfant est terminé, son statut reste à collecter.
Un zombie disparaît après sa collecte

L’enfant termine avec le code 7. Le parent conserve brièvement son état, puis appelle waitpid pour récupérer ce résultat.

  • Z est l’état zombie : l’enfant est terminé, son statut reste à collecter.
  • waitpid récupère le code 7; l’entrée de cet enfant disparaît ensuite de /proc.
Lire la capture en texte
os.fork() → enfant termine avec 7
ps ... ; os.waitpid(enfant, 0)

Avant waitpid :
PID    PPID STAT COMMAND
    727     385 Z+   python3
Après waitpid : code de sortie = 7
Entrée /proc/727 encore présente : False

Dé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.

À la fin, le noyau libère mémoire, descripteurs et ressources, retire le processus des files actives et conserve seulement les renseignements nécessaires à la récupération du statut.

Tableau 1 — Situation · État du fils · Cause · Résolution
Situation État du fils Cause Résolution
Zombie Déjà terminé Le père n'a pas encore appelé wait Le père ou un processus responsable récolte le statut
Orphelin Peut encore s'exécuter Le père original est terminé Adoption par init, systemd ou un subreaper approprié

Le zombie ne consomme plus son espace d'exécution normal, mais occupe une entrée minimale. Une accumulation indique une mauvaise gestion des enfants. L'orphelin, lui, peut continuer de travailler.

Retour au sommaire de l’unitéHaut de page
Récupérer manuellement les données locales

Copier séparément les données ci-dessous dans des fichiers texte avant de fermer la page ou de modifier le stockage. Une valeur illisible ou incompatible reste en place. Aucun effacement ni rétablissement écrasant n’est effectué automatiquement. L’export/import JSON est disponible sur la page Progression du cours. Cette récupération séparée reste utile pour une valeur brute ou un conflit.

Clé de ce cours : . Format v1 porté par cette clé; dates UTC et identifiants durables.

Si l’accès est refusé, la valeur persistée peut rester inaccessible. Réautoriser le stockage dans le navigateur puis rouvrir ce cours permet de la relire. Une réinitialisation exige une décision explicite après récupération; aucune commande de suppression n’est proposée ici. Les données restent sur cette origine et cet appareil, sans transfert automatique.