mécanisme de mise en œuvre simultanée -3- impasse et de la faim

Deadlock et la famine sont deux questions fondamentales de traitement simultané

Deadlock trois méthodes communes: la prévention, la détection et l'évitement

Principe de Deadlock

  1. Deadlock est permanent.
  2. Chaque processus dans un groupe de processus sont en attente d'un événement (généralement attendre la sortie de la ressource demandée), alors que d'autres processus que cet ensemble de processus qui sont bloqués avant de pouvoir déclencher l'événement, de sorte que ce groupe de processus sur une impasse est survenue.

todo: blocage de processus commun ne peut être évité zone de la carte

Les différents types de blocage des ressources

Les ressources sont réparties en deux catégories: les ressources réutilisables, vous pouvez consommer des ressources.

ressource réutilisable est un processus qu'une seule fois et n'utilisera pas l'utilisation sûre des ressources appauvries, le processus utilisera et les ressources de libération, comme par exemple les ressources réutilisables: processeurs, canaux d'E / S, la mémoire et à l'extérieur du village, l'équipement et tels que les fichiers, bases de données, structures de données, et sémaphores ou analogues. Des exemples de ressources peuvent être réutilisées une impasse:

  • Les deux processus sont en concurrence un accès exclusif au fichier D et T, chaque processus occupe un dossier et demander un autre fichier de sorte qu'un blocage se produit. (Ressources de demande conception pour résoudre l'ordre de contrainte)
  • Les demandes de mémoire peuvent être l'espace alloué est 200KB, si l'ordre de demande est: traiter les demandes P1 80KB, 70Ko de demande P2, (avant la p1 demande, p2 terminée avant ce point de temps et il n'y a pas d'espace libre) demande p1 60kb, demande p2 80KB, puis blocage se produit parce que tout l'espace nécessaire. (Demande de connaître à l'avance le montant total de l'espace, la mémoire virtuelle en utilisant deux méthodes peut résoudre l'impasse)

Les ressources peuvent consommer des ressources peuvent être créées (production) et la destruction (consommation) de. La consommation de ressource de la ressource obtenue après le processus cesse d'exister, des exemples sont les suivants: le terminal, des signaux, des messages, et des tampons d'E / S. Les exemples sont comme suit :, ressources consommables est généralement difficile de trouver des erreurs de conception, des événements rares peuvent conduire à une impasse, il peut prendre beaucoup de temps à trouver.

  • Chaque tentative de processus de recevoir un message d'un autre processus, p1: recevoir (p2) ... Envoyer (p2, m1) p2: recevoir (p1) ... Envoyer (p1, m1)

condition de blocage

Trois conditions nécessaires:

  1. Mutuellement exclusif. Un seul processus peut utiliser une ressource.
  2. Possession et attendre. Lorsque le processus reste en attente pour d'autres processus, continuent d'occuper des ressources affectées.
  3. Ne pas être préempté. Il ne peut pas être obligé de saisir les ressources ont été occupées.

Une condition suffisante:

  1. Circulaire d'attente. Il y a une chaîne de processus fermé, de chaque enfant au moins une ressource nécessaire à la chaîne au processus suivant

Les Constituer décrites ci-dessus quatre conditions sont des conditions nécessaires et suffisantes pour l'impasse. La quatrième condition est que les trois premières conditions du résultat potentiel des trois premières conditions seulement montre qu'il ya peut-être une impasse.

Le procédé de traitement selon l'une impasse ces quatre conditions,

** quatre conditions semblent éliminer certaines conditions: ** Prévention

** Éviter: ** faire une sélection dynamique en fonction de l'état actuel de l'allocation des ressources

Détection **: ** détection des erreurs et la récupération de l'impasse existe impasse

TODO: Tableau 6.1 du système d'exploitation, la détection de blocage, la prévention et la méthode d'évitement

prévention Deadlock

la prévention de Deadlock divisé en deux catégories, l'une est indirectement la prévention impasse, à savoir la prévention des trois conditions énumérées ci-dessus, celui-ci est directement la prévention impasse, à savoir la prévention de la quatrième condition cycles d'attente.

la prévention des Deadlock et phénomène existe préemption rollback.

Mutuellement exclusif: inévitable

Possession et attente: un processus unique demande à toutes les ressources nécessaires. (Question: processus peut être bloqué pendant longtemps, bien qu'il existe quelques ressources aussi longtemps que vous pouvez continuer à exécuter, les processus ne connaissent pas toutes les ressources nécessaires)

Ne peut pas être préempté: 1. la possession de certaines ressources pour avancer le processus des ressources d'application si elles sont rejetées, il faut d'abord libérer les ressources occupées. 2. Lorsqu'un processus demande une ressource actuellement occupée par un autre processus, le système d'exploitation peut préempter un autre processus, pour demander la libération des ressources (priorité si le même n'est pas résoluble). Seul le cas des ressources de l'État peut facilement sauvegarder et restaurer (ressources processeur), cette approche est pratique.

Circulaire attente: Définit le premier type de ressource afin de prévenir, (rendre plus lente exécution du processus), le mécanisme qui est conçu pour empêcher l'apparition de conditions

évitement d'interblocage (peut également être considérée comme un exemple de prévention de blocage)

Permet aux trois conditions nécessaires, par un choix judicieux, de veiller à ce que jamais atteint le point de blocage. Il peut permettre à davantage d'accès concurrents. Que ce soit pour permettre à la demande d'allocation des ressources est faite en déterminant si la demande peut provoquer un blocage déterminé. (Demande de détermination, la possibilité de mise à mort)

stratégie d'évitement Deadlock de blocage ne permet pas de prédire exactement, pas la possibilité de blocage et de veiller à ce que ne prévoit une telle possibilité ne se produit pas (il peut être vu de l'algorithme de banquier)

Les deux méthodes sont rejetées :( ce qui va se passer)

  • Si le processus de demande conduira à une impasse, le processus ne démarre pas
  • Si le processus de demande des ressources supplémentaires conduira à une impasse, vous ne pouvez pas affecter

Quatre types de vecteur ou la preuve:

  • Le montant total de chaque système de ressources de ressources
  • Le montant total du processus d'un non alloué disponible de chaque ressource
  • i matrice de la demande du processus de demande de ressource j
  • L'affectation actuelle des ressources allouées au processus i j

Le problème classique des banquiers de l'algorithme d'allocation des ressources a refusé algorithme (algorithme de banquier), voir ci-dessous

évitement d'interblocage est limitée:

  • Un préavis de demande de ressources maximale
  • Pas d'exigences de synchronisation des processus de commande d'exécution, le processus est sans importance
  • Une quantité fixe de ressources allouées
  • Lorsque la part des ressources ne peut pas quitter le programme

Détection des blocages

les stratégies de prévention de Deadlock sont très conservateurs, pour résoudre le problème de blocage en limitant l'accès aux ressources et imposer des contraintes sur le processus. détection de Deadlock ne limite pas l'accès aux ressources ou limiter le comportement des processus. Pour la détection impasse, chaque fois allocation possible des ressources pour traiter leurs demandes.

détection de Deadlock peut être effectuée fréquemment lorsque chaque demande de ressources se produit, il peut être un peu moins, vérifiez dans chaque impasse des ressources de la demande: une situation de blocage est détectée tôt, algorithme simple, mais peut prendre beaucoup de temps processeur.

la détection de Deadlock peut être divisé en: la détection et la récupération Deadlock

Deadlock algorithmes de détection:

  1. la matrice d'attribution de la marque dans une rangée traiter tous les zéros
  2. Un vecteur d'initialisation temporaire w, de sorte que w est égal à disposition
  3. I est une table de consultation, de telle sorte que ah vol i q qui marqué la i-ième rangée et moins en poids, à savoir pour les 1 <= k <= m, Qik <= Wk, si une telle ligne, l'algorithme se termine ( pour répondre aux besoins d'un processus)
  4. Si une telle ligne, les processus marqués i, et la rangée correspondante de la matrice allocation ajoutée w, à savoir pour tout 1 <= k <= m, de sorte que Wk = Wk + Aik, les rendements de l'étape à l'étape 33 (la reprise la ressource de traitement, répétition 3)

algorithme politique de détection de blocage est de trouver un processus pour que les ressources disponibles pour répondre à la procédure de demande de ressources, puis a accepté d'assumer ces ressources pour exécuter jusqu'à la fin du processus, la libération de toutes ses ressources, puis, l'algorithme peut chercher un autre pour répondre à la procédure de demande de ressources, l'algorithme ne peut pas garantir pour éviter l'impasse, selon que le consentement pour la demande de penser à l'avenir. Tout ce qu'il a fait pour déterminer s'il y a actuellement une impasse

Seulement lorsque le résultat final de cet algorithme sont processus avant qu'il y ait sans étiquette une impasse, chaque processus non marqué est dans l'impasse.

Programme de rétablissement:

  1. Annuler tous les processus de blocage
  2. Chaque impasse le processus de retour de rouleau à un certain point de contrôle défini précédemment, et redémarrer tous les processus doivent construire un mécanisme de restauration et redémarrer le système
  3. Continue annuler le blocage du processus jusqu'à ce qu'il n'y a pas de blocages, d'annuler l'ordre fondé sur un principe de moindre coût. Commandez le processus d'annulation doit être fondée sur un principe de moindre coût.
  4. Continue saisir la ressource jusqu'à ce que l'impasse n'est pas besoin d'un algorithme de sélection basé sur les coûts, un processus préempté des ressources doit être annulée à un état précédent pour obtenir cette ressource.

Sélectionner principe idéologique :()

  • Temps processeur consommé au moins jusqu'à présent
  • Actuellement, la production minimum produit jusqu'à présent
  • Prévue le reste de la plus longue
  • Actuellement, le montant minimum des ressources allouées à ce jour
  • priorité la plus basse

Trois façons d'éviter l'impasse :( impasse avant que l'article a été ajouté à aller à l'intérieur)

  • Afin de verrouillage fixe (verrouillage de commande pour blocage)

  • Appel ouvert (impasse de la collaboration entre les objets causés)

  • Utilisation du verrou de synchronisation -> trylock ()

    • Si vous attendez d'acquérir le délai d'attente de verrouillage, une exception est levée et ne pas avoir à attendre!

Je suppose que tu aimes

Origine www.cnblogs.com/cheaptalk/p/12549663.html
conseillé
Classement