Impasse dans OperaSystème de synchronisation : qu'est-ce que l'attente circulaire (exemples)
⚡ Résumé intelligent
Un blocage dans un système d'exploitation se produit lorsqu'un ensemble de processus sont bloqués parce que chacun détient une ressource et attend une autre ressource détenue par un processus différent, créant ainsi une chaîne circulaire où aucun processus ne peut progresser.
Qu'est-ce que l'impasse ?
Deadlock est une situation qui se produit dans un le système d'exploitation Un interblocage se produit lorsqu'un processus entre en état d'attente car un autre processus en attente détient la ressource demandée. Ce problème est fréquent en multiprocessus, où plusieurs processus partagent un type spécifique de ressource mutuellement exclusive, appelé verrouillage logiciel.
Lorsqu'un blocage survient, aucun des processus impliqués ne peut se poursuivre, et le travail affecté s'arrête jusqu'à l'intervention du système d'exploitation.
Exemple de blocage
- Un exemple concret serait la circulation à sens unique.
- Ici, un pont est considéré comme une ressource.
- Ainsi, lorsqu'un blocage survient, il peut être résolu si une voiture fait marche arrière (en préemptant les ressources et en revenant en arrière).
- Plusieurs voitures devront peut-être être reculées en cas de situation de blocage.
- La famine est donc possible.
Exemple de blocage
Qu’est-ce que l’attente circulaire ?
Un processus attend une ressource détenue par un deuxième processus, qui attend lui-même une ressource détenue par un troisième processus, et ainsi de suite. Ce processus se poursuit jusqu'à ce que le dernier processus attende une ressource détenue par le premier. Cela crée une chaîne circulaire.
Par exemple, le processus A se voit allouer la ressource B alors qu'il demande la ressource A. De même, le processus B se voit allouer la ressource A alors qu'il demande la ressource B. Cela crée une boucle d'attente circulaire.
Exemple d'attente circulaire
Par exemple, un ordinateur possède trois clés USB et trois processus. Chaque processus utilise une clé USB. Ainsi, lorsqu'un processus demande une autre clé, les trois processus se retrouvent dans une situation de blocage, car chacun attend qu'une clé USB soit libérée alors qu'elle est encore en cours d'utilisation. Il en résulte une boucle de blocage.
Exemple d'attente circulaire
Détection de blocage dans le système d'exploitation
Un blocage peut être détecté par le planificateur de ressources. Ce dernier aide le système d'exploitation à maintenir la disponibilité des ressources. track représente l'ensemble des ressources allouées aux différents processus. Une fois un blocage détecté, il peut être résolu en préemptant des ressources, en annulant un processus ou en terminant un ou plusieurs des processus bloqués.
Prévention des blocages dans le système d'exploitation
Il est essentiel de prévenir un blocage avant même qu'il ne survienne. Le système vérifie chaque transaction avant son exécution afin de s'assurer qu'elle ne provoque pas de blocage. Même une opération mineure susceptible d'en engendrer un ultérieurement est systématiquement bloquée.
La prévention des interblocages est un ensemble de méthodes permettant de garantir qu'au moins une des quatre conditions nécessaires ne puisse pas être remplie.
Pas de préemption
Une ressource ne peut être libérée que volontairement par le processus qui la détient, une fois que ce processus a terminé sa tâche.
- Si un processus qui détient des ressources demande une autre ressource qui ne peut pas lui être immédiatement allouée, alors toutes ses ressources sont libérées.
- Les ressources préemptées sont ajoutées à la liste des ressources que le processus attend.
- Le processus ne redémarre que lorsqu'il peut récupérer ses anciennes ressources ainsi que les nouvelles qu'il demande.
Exclusion mutuelle
L'exclusion mutuelle est l'abréviation de mutex. Il s'agit d'un type particulier de système binaire. sémaphore Ce mécanisme sert à contrôler l'accès à une ressource partagée. Il intègre un mécanisme d'héritage de priorité afin d'éviter les problèmes d'inversion de priorité prolongée et de maintenir les tâches prioritaires bloquées le moins longtemps possible.
Les ressources partagées, telles que les fichiers en lecture seule, ne provoquent jamais de blocages, mais les ressources comme les imprimantes et les lecteurs de bande nécessitent un accès exclusif par un seul processus.
Tenez et attendez
Dans ce cas, les processus doivent être empêchés de monopoliser une ou plusieurs ressources tout en attendant simultanément une ou plusieurs autres.
Attente circulaire
Cette méthode impose un ordre total à tous les types de ressources. La prévention des attentes circulaires exige également que chaque processus demande les ressources dans un ordre d'énumération croissant.
Évitement des impasses Algorithms
Il est préférable d'éviter un blocage plutôt que d'intervenir une fois celui-ci survenu. L'évitement nécessite des informations supplémentaires, notamment sur l'utilisation des ressources. L'évitement des blocages est un modèle utile dans lequel chaque processus déclare le nombre maximal de ressources de chaque type dont il pourrait avoir besoin.
Évitement Algorithms
L'algorithme d'évitement des interblocages évalue dynamiquement l'état d'allocation des ressources afin qu'une situation d'attente circulaire ne puisse jamais se produire.
Pour une instance unique d'un type de ressource :
- Utilisez un graphique d'allocation des ressources.
- Un cycle dans le graphe est nécessaire et suffisant pour qu'il y ait interblocage.
Pour plusieurs instances d'un type de ressource :
- Un cycle est nécessaire mais non suffisant pour provoquer un blocage.
- Utilisez le bouton Algorithme du banquier.
Différence entre la famine et l'impasse
Voici quelques différences importantes entre l'impasse et la famine :
| Deadlock | Famine |
|---|---|
| Une situation de blocage survient lorsqu'un des processus est bloqué. | La famine est une situation où tous les processus de faible priorité sont bloqués tandis que les processus de haute priorité s'exécutent. |
| L’impasse est un processus infini. | La famine est une longue attente, mais pas un processus infini. |
| Chaque impasse engendre toujours la famine. | Toute famine n'entraîne pas nécessairement une impasse. |
| Un blocage survient en raison de l'exclusion mutuelle, de l'attente et du maintien, de l'absence de préemption et de l'attente circulaire qui se produisent simultanément. | Cela se produit en raison de priorités non maîtrisées et d'une mauvaise gestion des ressources. |
Avantages de l’impasse
Voici les avantages de l'utilisation de la méthode de gestion des interblocages :
- Cette situation convient parfaitement aux processus qui effectuent une seule brève période d'activité.
- Aucune préemption n'est nécessaire en cas d'interblocage.
- C'est une méthode pratique lorsqu'elle est appliquée à des ressources dont l'état peut être facilement sauvegardé et restauré.
- Il est possible de l'appliquer via des vérifications à la compilation.
- Aucun calcul n'est nécessaire lors de l'exécution, puisque le problème est résolu dès la conception du système.
Inconvénients de l’impasse
Voici les inconvénients de l'utilisation de la méthode de gestion des interblocages :
- Cela retarde le lancement du processus.
- Les processus doivent connaître à l'avance leurs besoins futurs en ressources.
- Elle intervient plus souvent que nécessaire.
- Il interdit les demandes de ressources incrémentales.
- Elle comporte des pertes inhérentes liées à la préemption.



