🔄 États d'un processus§
Automate des états (5 états)§
stateDiagram-v2
[*] --> Nouveau
Nouveau --> Pret : Admis
Pret --> Elu : Ordonnanceur choisit
Elu --> Pret : Préemption / quantum écoulé
Elu --> Bloque : Attente E/S ou ressource
Bloque --> Pret : E/S terminée / ressource dispo
Elu --> Termine : Fin ou exit()
Termine --> [*]
| État | Signification |
|---|---|
| Nouveau | Processus créé mais pas encore prêt à s'exécuter |
| Prêt | Attend qu'un CPU lui soit attribué par l'ordonnanceur |
| Élu (en exécution) | Utilise actuellement le CPU |
| Bloqué | En attente d'un événement (E/S, signal, ressource) |
| Terminé | A fini son exécution ; ses ressources peuvent être libérées |
Interblocage (deadlock)§
Conditions de Coffman (les 4 doivent être réunies) :
- Exclusion mutuelle : ressources non partageables.
- Occupation et attente : processus qui détient une ressource en attend d'autres.
- Pas de préemption : on ne peut pas forcer un processus à libérer.
- Attente circulaire : cycle dans le graphe d'allocation.
Graphe d'allocation — exemple d'interblocage§
graph LR
P1((P1)) -- demande --> R1[(R1)]
R1 -- détenu par --> P2((P2))
P2 -- demande --> R2[(R2)]
R2 -- détenu par --> P1
→ P1 attend R1 (détenu par P2), P2 attend R2 (détenu par P1) : interblocage.