Impasse dans OperaSystème de synchronisation : qu'est-ce que l'attente circulaire (exemples)

Qu'est-ce que l'impasse ?

Deadlock est une situation qui se produit dans le système d'exploitation lorsqu'un processus entre dans un état d'attente parce qu'un autre processus en attente détient la ressource demandée. Le blocage est un problème courant dans le multitraitement où plusieurs processus partagent un type spécifique de ressource mutuellement exclusive appelé verrou logiciel ou logiciel.

Exemple de blocage

  • Un exemple concret serait le trafic, qui ne va que dans une seule direction.
  • Ici, un pont est considéré comme une ressource.
  • Ainsi, lorsqu'un blocage se produit, il peut être facilement résolu si une voiture effectue une sauvegarde (préemption des ressources et restauration).
  • Plusieurs voitures devront peut-être être reculées en cas de situation de blocage.
  • La famine est donc possible.
Exemple de blocage
Exemple de blocage

Qu’est-ce que l’attente circulaire ?

Un processus attend la ressource détenue par le deuxième processus, qui attend également la ressource détenue par le troisième processus, etc. Cela continuera jusqu'à ce que le dernier processus attend une ressource détenue par le premier processus. Cela crée une chaîne circulaire.

Par exemple, le processus A se voit attribuer la ressource B car il demande la ressource A. De la même manière, le processus B se voit attribuer la ressource A et demande la ressource B. Cela crée une boucle d'attente circulaire.

Exemple d'attente circulaire

Par exemple, un ordinateur dispose de trois clés USB et de trois processus. Chacun des trois processus est capable de contenir l'une des clés USB. Ainsi, lorsque chaque processus demande un autre lecteur, les trois processus se retrouveront dans une situation de blocage car chaque processus attendra la libération du lecteur USB actuellement utilisé. Cela se traduira par une chaîne circulaire.

Exemple d'attente circulaire

Exemple d'attente circulaire

Détection de blocage dans le système d'exploitation

Une occurrence de blocage peut être détectée par le planificateur de ressources. Un planificateur de ressources aide le système d'exploitation à suivre toutes les ressources allouées aux différents processus. Ainsi, lorsqu'un blocage est détecté, il peut être résolu à l'aide des méthodes ci-dessous :

Prévention des blocages dans le système d'exploitation

Il est important d’éviter une impasse avant qu’elle ne se produise. Le système vérifie chaque transaction avant son exécution pour s'assurer qu'elle ne conduit pas à des situations de blocage. De telle sorte que même un petit changement se produit sans qu'une opération pouvant conduire à un blocage à l'avenir ne permette jamais non plus au processus de s'exécuter.

Il s’agit d’un ensemble de méthodes permettant de garantir qu’au moins une des conditions ne peut pas être remplie.

Aucune action préventive

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, dans cette situation, toutes les ressources seront libérées.
  • Les ressources préemptées nécessitent la liste des ressources d'un processus en attente.
  • Le processus ne sera redémarré que s'il parvient à retrouver son ancienne ressource et une nouvelle qu'il demande.
  • Si le processus demande une autre ressource, lorsqu'elle est disponible, elle a été transmise au processus demandeur.
  • S'il est détenu par un autre processus qui attend une autre ressource, nous le libérons et le donnons au processus demandeur.

Exclusion mutuelle

L'exclusion mutuelle est une forme complète de Mutex. Il s'agit d'un type spécial de sémaphore binaire utilisé pour contrôler l'accès à la ressource partagée. Il comprend un mécanisme d'héritage de priorité pour éviter les problèmes étendus d'inversion de priorité. Il permet aux tâches actuelles de priorité plus élevée de rester bloquées pendant la durée la plus courte possible.

Les ressources partagées telles que les fichiers en lecture seule n'entraînent jamais de blocages, mais les ressources, comme les imprimantes et les lecteurs de bande, nécessitent un accès exclusif par un processus unique.

Tenez et attendez

Dans cette condition, les processus doivent être empêchés de détenir une ou plusieurs ressources tout en attendant simultanément une ou plusieurs autres.

Attente circulaire

Il impose un ordonnancement total de tous les types de ressources. L'attente circulaire nécessite également que chaque processus demande des ressources par ordre croissant d'énumération.

Évitement des impasses Algorithms

Il est préférable d’éviter une impasse plutôt que d’agir une fois l’impasse survenue. Il a besoin d’informations supplémentaires, comme la manière dont les ressources doivent être utilisées. L'évitement des blocages est le modèle le plus simple et le plus utile dans lequel chaque processus déclare le nombre maximum de ressources de chaque type dont il peut avoir besoin.

Évitement Algorithms

L'algorithme d'évitement des blocages vous aide à évaluer dynamiquement l'état d'allocation des ressources afin qu'il ne puisse jamais y avoir de situation d'attente circulaire.

Une seule instance d'un type de ressource.

  • Utiliser un graphique d'allocation des ressources
  • Des cycles sont nécessaires et suffisants pour Deadlock

Plusieurs instances d'un type de ressource.

Différence entre la famine et l'impasse

Voici quelques différences importantes entre l’impasse et la famine :

Deadlock Famine
La situation de blocage se produit lorsqu'un des processus est bloqué. La famine est une situation dans laquelle tous les processus de faible priorité sont bloqués et 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 entraîne toujours la famine. Chaque famine n'entraîne pas nécessairement une impasse.
Une impasse se produit puis une exclusion mutuelle, attendez et attendez. Ici, la préemption et l’attente circulaire ne se produisent pas simultanément. Cela se produit en raison d’une gestion incontrôlée des priorités et des ressources.

Avantages de l’impasse

Voici les avantages/avantages de l’utilisation de la méthode Deadlock

  • Cette situation fonctionne bien pour les processus qui effectuent une seule rafale d'activité
  • Aucune préemption nécessaire pour Deadlock.
  • Méthode pratique lorsqu’elle est appliquée à des ressources dont l’état peut être sauvegardé et restauré facilement
  • Faisable à appliquer via des contrôles au moment de la compilation
  • Ne nécessite aucun calcul au moment de l'exécution puisque le problème est résolu dans la conception du système

Inconvénients de l’impasse

Voici les inconvénients/inconvénients de l'utilisation de la méthode de blocage

  • Retarde le lancement du processus
  • Les processus doivent connaître les besoins futurs en ressources
  • Anticipe plus souvent que nécessaire
  • Interdit les demandes de ressources incrémentielles
  • Pertes de préemption inhérentes.

Résumé

  • Définition de l’impasse : C’est une situation qui se produit dans OS lorsqu'un processus entre dans un état d'attente parce qu'un autre processus en attente détient la ressource demandée
  • L'attente circulaire se produit lorsqu'un processus attend la ressource détenue par le deuxième processus, qui attend également la ressource détenue par le troisième processus, etc.
  • Une occurrence de blocage peut être détectée par le planificateur de ressources.
  • Il est important d’éviter une impasse avant qu’elle ne se produise.
  • 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.
  • L'exclusion mutuelle est une forme complète de Mutex. C'est un type spécial de binaire sémaphore qui est utilisé pour contrôler l’accès à la ressource partagée.
  • Hold and wait est une condition dans laquelle les processus doivent être empêchés de détenir une ou plusieurs ressources tout en attendant simultanément une ou plusieurs autres.
  • L'évitement des blocages est le modèle le plus simple et le plus utile dans lequel chaque processus déclare le nombre maximum de ressources de chaque type dont il peut avoir besoin.
  • L'algorithme d'évitement des blocages vous aide à évaluer dynamiquement l'état d'allocation des ressources afin qu'il ne puisse jamais y avoir de situation d'attente circulaire.
  • L’impasse est un processus infini, alors que la famine est une longue attente mais pas un processus infini.