6. Processus, états et PCB

Le script de démonstration lance un enfant sleep. Le relevé porte uniquement sur ces deux processus.
- Le PPID de sleep correspond au PID de son parent python3.
- S indique une attente interruptible; les caractères supplémentaires de STAT sont des indicateurs distincts.
Lire la capture en texte
sleep 5 &
ps -o pid,ppid,stat,comm -p <parent>,<enfant>
PID PPID STAT COMMAND
385 384 Ss+ python3
704 385 S+ sleepDé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.
6.1 Programme contre processus
Un programme est un code statique stocké dans un fichier. Un processus est une instance active de ce programme. Plusieurs processus issus du même exécutable ont des PID, espaces mémoire et états distincts.
L'espace d'adressage logique d'un processus comprend typiquement :
- le code exécutable;
- les données globales;
- le tas pour l'allocation dynamique;
- la pile d'appels;
- les bibliothèques et zones mappées selon le système.
À cela s'ajoute le contexte processeur : compteur ordinal, registres et informations nécessaires à l'interruption puis à la reprise.
6.2 Cycle de vie
| État | Signification |
|---|---|
| Nouveau | Le noyau prépare le processus et ses structures. |
| Prêt | Tout est disponible sauf le CPU. |
| En exécution | Les instructions utilisent actuellement le CPU. |
| Bloqué / en attente | Le processus attend un événement, une donnée ou la fin d'une E/S. |
| Terminé | L'exécution est finie; les ressources doivent être récupérées. |
Après sa création, le processus devient prêt. L'ordonnanceur le choisit, il s'exécute, puis il peut être préempté vers l'état prêt, se bloquer en attendant un événement, ou se terminer. Quand l'événement attendu survient, un processus bloqué redevient prêt, pas directement actif.
La distinction essentielle est donc : un processus prêt attend uniquement le CPU; un processus bloqué attend autre chose.
6.3 PCB
Le Process Control Block est la structure du noyau qui représente un processus du point de vue administratif et processeur. Il contient notamment :
- le PID et l'état courant;
- le compteur ordinal et les registres sauvegardés;
- les informations de mémoire;
- la priorité et les données d'ordonnancement;
- les ressources et E/S associées;
- les relations nécessaires avec le parent et les enfants.
Le PCB n'est pas l'espace mémoire de l'application. Il est conservé par le noyau afin de gérer les files, l'interruption, la reprise et la terminaison.
Sous Linux, cette représentation prend notamment la forme de la structure C task_struct. Elle est beaucoup plus vaste que le PCB pédagogique et regroupe état, identifiants, priorités, parenté, mémoire, fichiers et signaux. Le modèle simplifié demeure utile pour raisonner sans dépendre des champs d'une version particulière du noyau.
6.4 Origines et processus d'arrière-plan
Un processus peut être créé pendant l'initialisation du système, par l'appel système d'un processus existant, à la demande d'un utilisateur dans une GUI ou un shell, ou par le lancement planifié d'un travail en lot. Dans tous les cas, le noyau doit allouer ses structures et ressources.
Le démarrage crée aussi des programmes offrant durablement des fonctions sans interaction directe. Unix parle traditionnellement de démons, comme sshd; Windows parle de services, administrables notamment avec Services.msc. Les deux remplissent des rôles comparables : réseau, impression, Web ou entretien du système.
Modèle simplifié à cinq états, un cœur : nouveau → prêt après admission; prêt → actif après sélection; actif → prêt après préemption; actif → bloqué lors d’une attente d’E/S; bloqué → prêt quand l’événement devient disponible; actif → terminé à la fin. Une fin d’E/S ne donne pas immédiatement le CPU. Les flèches indiquent des transitions, pas des durées ni une politique de priorité. Le modèle simplifie les états Linux; arrêt par signal et zombie ne sont pas assimilés au blocage d’E/S. Le PCB conserve l’état administratif et le contexte; il ne constitue pas l’espace mémoire utilisateur.
Source : 01-02 - Introduction/SOMMAIRE_MAITRE_SEMAINE_02.md · §6.1–6.3 et §7. Figure originale du portail relue le 15 octobre 2026; aucune source omise reconstituée.