Problème — Prévenir l'interblocage
Application directe du cours · niveau 2 · NSI (terminale), chapitre 13 — Systèmes d'exploitation et processus
Énoncé
Problème — Prévenir l'interblocage.
Un système gère trois imprimantes . Trois processus ont besoin, pour terminer, de deux imprimantes chacun. À un instant donné :
- détient et demande ;
- détient et demande ;
- détient et demande .
- Vérifier que le système est en interblocage en identifiant les quatre conditions de Coffman.
- Proposer deux stratégies différentes pour éviter ce blocage à l'avenir.
Corrigé
1. Vérification des conditions de Coffman.
- Exclusion mutuelle : une imprimante ne peut servir qu'un seul processus à la fois. ✓
- Détention et attente : chaque processus garde son imprimante tout en en réclamant une autre. ✓
- Non-préemption : on ne peut pas retirer de force une imprimante à un processus en cours d'impression. ✓
- Attente circulaire : (chacun attend l'imprimante du suivant). ✓
Les quatre conditions étant réunies, le système est bien en interblocage.
2. Deux stratégies de prévention (chacune brise une condition) :
- Ordre global d'acquisition (brise l'attente circulaire) : imposer que tout processus demande les imprimantes dans l'ordre croissant . Un cycle d'attente devient alors impossible.
- Allocation globale (brise la détention et attente) : exiger qu'un processus réclame d'un coup toutes les imprimantes dont il a besoin ; s'il ne peut pas toutes les obtenir, il n'en prend aucune et réessaie plus tard. Il ne détient donc jamais une ressource tout en en attendant une autre.
On pourrait aussi autoriser la préemption (retirer temporairement une imprimante), mais c'est délicat pour une impression en cours. Briser l'exclusion mutuelle est ici impossible (deux processus ne peuvent pas imprimer en même temps sur la même imprimante).
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.