Qu'est-ce qu'un blocage dans le système d'exploitation: conditions et algorithme de détection

Essayez Notre Instrument Pour Éliminer Les Problèmes





L'objectif principal d'un système d'exploitation est de fournir une bonne communication entre les ressources matérielles et logicielles et également de fournir des services communs aux programmes. Lorsqu'un processus du système d'exploitation souhaite accéder à une ressource, il envoie d'abord une demande à la ressource particulière à laquelle il souhaite accéder, puis il utilise la ressource et enfin libère la ressource après utilisation. Car supposons que de nombreux processus tentent d'accéder à une ressource en même temps, il devient difficile de fournir une ressource à tous les processus à la fois dans une telle situation, le concept appelé blocage se pose. Par conséquent, cet article décrit comment se produit un blocage et comment surmonter cette situation de blocage.

Quel est le blocage du système d'exploitation?

Définition: Dead-Lock est une situation où deux processeurs ou plus attendent qu'un événement se produise, mais de tels événements qui ne se produisent pas sont une condition de blocage, et les processeurs sont considérés comme dans un état de blocage. Par exemple, supposons un scénario en temps réel, où il y a deux voitures A et B, conduites par deux conducteurs individuels sur une route à sens unique. Maintenant, la situation se présente où le conducteur de la voiture A dit qu'il se déplace vers le nord est une direction correcte, tandis que le conducteur de la voiture B dit qu'il se dirige vers le sud est correct. Mais ni l'un ni l'autre ne recule pour permettre à une autre voiture d'avancer, cette condition est appelée une condition de blocage.




Exemple de voiture

exemple de voiture

Pour une meilleure compréhension, considérons un autre exemple où il y a deux ressources R1, R2 et deux processus P1 et P2, où R1 est affecté à P1 et R2 est affecté à P2. Maintenant, si P1 veut accéder à R2, comme nous le savons déjà, R2 est détenu par P2, et maintenant P2 veut accéder à R1, qui est P1 ne s'exécute que lorsqu'il est accédé à R2, P2 s'exécute également uniquement lorsqu'il est accédé à R1 cette situation est un état de blocage.



Exemple de processeur

exemple de processeur

Conditions de dead-lock

Voici les quatre conditions importantes de blocage à se produire si toutes les conditions se produisent simultanément, il y a certaines chances que le blocage se produise.

Exclusion mutuelle

Cela signifie que quelle que soit la ressource que nous utilisons, elle doit être utilisée de manière mutuellement exclusive. Où un seul processus utilise une seule ressource à la fois. Par exemple, le processus d'impression est en cours et tout à coup un autre processus tente d'interrompre le processus d'impression. Donc ici en situation d'exclusion mutuelle, ce n'est qu'après la fin de la tâche d'impression que seule la tâche suivante est traitée. L'exclusion mutuelle peut être éliminée en partageant les ressources simultanément, ce qui n'est pratiquement pas possible.

Exclusion mutuelle

exclusion mutuelle

Pas de préemption

Selon préemptif basés sur des algorithmes, s'il existe une tâche prioritaire qui tente d'interrompre la tâche en cours. L'algorithme préemptif il détient la tâche en cours et exécute d'abord la tâche prioritaire et revient à sa première tâche. Une situation expliquée comme dans l'exemple ci-dessus où un processus détient la ressource tant qu'elle est exécutée, c'est-à-dire que P1 ne peut libérer R1 qu'après l'exécution, de même P2 libérer R2 uniquement après l'exécution. S'il n'y a pas de préemption, un blocage peut se produire.


Exemple sans préemption

exemple sans préemption

Attendez et attendez

Un processus contient des ressources et attend des ressources supplémentaires, mais ces ressources sont acquises par un autre processus. À partir de l'exemple ci-dessus, P1 tient R1 et attend R2, où R2 est acquis par P2, et P2 maintient R2 et attend R1, où R1 est acquis par P1 est un blocage de situation d'attente et d'attente peut se produire dans le système.

Exemple de mise en attente et d

exemple de mise en attente

Attente circulaire

Un ensemble de processus est dit en blocage si un processus attend une ressource qui est allouée à un autre processus et que ce processus attend une ressource, il est similaire à l'exemple expliqué ci-dessus où il est sous forme de boucle. Où P1 attend R2 et R2 est alloué pour P2 et P2 attend R1 et R1 alloués pour P1 qui est une forme d'attente circulaire si cette condition satisfait le blocage se produit.

Exemple d

exemple d'attente circulaire

Algorithme de détection de dead-lock

Les cas où nous allouons des ressources aux processus et où le système d'exploitation vérifie à nouveau si un blocage s'est produit dans le système ou non à l'aide de 2 algorithmes de détection de blocage principaux, ils sont

  • Seule instance
  • Plusieurs instances de type de ressource

Seule instance

Une seule instance est une situation dans laquelle un système possède des instances uniques de toutes les ressources. Il est également connu sous le nom d'algorithme d'attente de graphique ou de graphique d'allocation de ressources. Le graphe d'allocation de ressources est constitué d'un ensemble de processus et d'un ensemble de ressources qui sont représentés sous la forme de deux sommets différents. Les ressources dans le graphique d'allocation de ressources sont modifiées et sont représentées sous forme d'attente de graphique. Où attendre la forme de graphe n'a que des processus qui sont représentés comme des sommets comme indiqué ci-dessous où,

  • Graphique d'allocation des ressources: les processus P1, P2, P3 et les ressources R1, R2, R3 sont représentés dans le graphique d'allocation des ressources.
  • Attendre le graphe: seuls les processus P1, P2, P3 sont mentionnés dans l'attente du graphe.
  • S'il y a une condition de cycle, que s'il y a un flux continu d'un processus dans une direction, cela signifie que la condition de cycle se termine et attend que le graphique soit dans une condition de blocage.

Exemple 1: L'exemple ci-dessous montre qu'il n'y a pas d'état de blocage car il n'y a pas de flux continu observé en attente du graphique.

Exemple d

exemple-unique-instance1

Exemple 2: Une condition de blocage s'est produite parce qu'il y a un flux continu de cycle de P1 à P4.

Instance unique - Exemple2

exemple-d'instance unique2

Si un blocage se produit très fréquemment dans le système, l'algorithme de détection est fréquemment utilisé. S'il y a plus d'utilisation de l'algorithme de détection, il y aura plus de temps système et plus de temps de calcul. Par conséquent, pour surmonter cela, nous invoquons l'algorithme après, en donnant un temps égal, c'est ainsi que le poids du graphique est utilisé pour détecter un blocage.

Plusieurs instances de type de ressource

Plusieurs instances du type de ressource sont une situation dans laquelle un système possède plusieurs instances de toutes les ressources, il est également connu sous le nom d'algorithme de Bankers. Selon l'algorithme Bankers, dès que le processus obtient toutes ses ressources nécessaires, il libère ses ressources.

Prenons l'exemple suivant, supposons qu'il existe 3 processus P0, P1, P2 et le type de ressource A, B, C où A peut être CPU , B peut être une imprimante et C peut être le clavier. Les chiffres «0» dans la colonne représentent la disponibilité des ressources.

Cas (i): Supposons que si nous prenons la condition request est «000» condition qui est présente dans P0 et P2, nous devrions vérifier quelle demande est satisfaite, les processus P0 libèrent les processus après avoir été alloués, puis P2 traite les versions après avoir été allouées. Ainsi, dans une séquence, un par un processus libère P0, P2, P3, P1, P4 dans une séquence. Enfin, nous obtenons des ressources disponibles comme P7, P2, P6. La séquence disponible est une condition où il n'y a pas d'interblocage.

Exemple d

banquiers-algorithme-exemple1

Maisons (ii): Supposons que si P2 est 001 au lieu de 000, appliquez maintenant l'algorithme du banquier pour vérifier la condition de blocage, où le seul P0 est exécuté parmi les 5 processus. Par conséquent, P1, P2, P3, P4 sont dans un état de blocage à l'exception de P0.

Banquiers-Exemple2

banquiers-exemple2

Applications de Deadlock

Les applications de l'impasse peuvent être expliquées par un exemple en temps réel de résultats d'examen en ligne, où plusieurs étudiants tentent d'accéder au site Web de leur université au moment de leur libération. On peut observer que parfois la page Web ne se charge pas à la fois pour plusieurs utilisateurs, c'est une condition de blocage. Cela peut être surmonté en utilisant l'un des algorithmes.

Avantages

Les avantages de l'impasse sont

  • Aucune préemption n'est observée pour éviter les blocages
  • Aucun retard dans le processus

Désavantages

L'inconvénient de l'impasse est

  • La ressource à utiliser doit être connue à l'avance
  • Blocage du processus pendant une longue période
  • Les pertes de préemption sont héritées.

Cet article décrit comment le blocage se produit lorsqu'il y a deux processus ou plus et les trois conditions qui sont à l'origine d'un blocage, et les deux types d'algorithmes, à savoir l'algorithme de partage de ressources qui détecte l'existence d'un état de blocage et l’algorithme des banquiers, qui est un algorithme d’évitement des blocages. Voici la question «Que se passe-t-il si le blocage est ignoré?».