Interblocages - PowerPoint PPT Presentation

About This Presentation
Title:

Interblocages

Description:

Chapitre 3 Interblocages 3.1. Ressources 3.2. Introduction aux interblocages 3.3. La politique de l'autruche 3.4. D tection des interblocages et reprise – PowerPoint PPT presentation

Number of Views:89
Avg rating:3.0/5.0
Slides: 36
Provided by: SteveA208
Category:

less

Transcript and Presenter's Notes

Title: Interblocages


1
Interblocages
  • Chapitre 3

3.1. Ressources 3.2. Introduction
aux interblocages 3.3. La politique de
l'autruche 3.4. Détection des
interblocages et reprise 3.5.
L'évitement des interblocages 3.6. La
prévention des interblocages 3.7. Autres
considérations
2
Ressources
  • Exemples de ressources
  • imprimantes
  • lecteurs de rubans
  • fichiers
  • tables internes du système
  • L'ordre dans lequel les ressources sont
    attribuées est important
  • Supposons qu'un processus possède une ressource A
    et demande une ressource B
  • au même moment un autre processus possède B et
    demande A
  • les deux sont bloqués de façon permanente

3
Ressources (1)
  • Un interblocage peut se produire lorsque
  • les processus se voient attribuer un accès
    exclusif à des ressources.
  • Ressources retirables (préemptibles)
  • peuvent être retirées d'un processus sans effet
    négatif
  • ex. mémoire
  • Ressources non retirables (non préemptibles)
  • peuvent causer des problèmes si retirées du
    processus
  • ex. graveur de CD
  • En général les interblocages impliquent des
    ressources non retirables.

4
Ressources (2)
  • Séquence d'événements nécessaires pour utiliser
    une ressource
  • Solicitation de la ressource
  • Utilisation de la ressource
  • Libération de la ressource
  • Doit attendre si l'accès est refusé
  • le processus peut alors être bloqué
  • ou un code d'erreur est retourné

5
Ressources (3)
Figure 3.1  Utiliser un sémaphore pour protéger
les ressources. (a) Une ressource. (b) Deux
ressources typedef int semaphore  typedef
int semaphore semaphore resource_1 
semaphore resource_1
semaphore resource_2 void process_A(void)
void process_A(void) down(resource_1) 
down(resource_1)
use_resource_1( ) 
down(resource_2) up(resource_1) 
use_both_resources( )
up(resource_2)
up(resource_1)
(a)
(b)
6
Ressources (4)
Figure 3.2  (a) Code exempt dinterblocage. (b)
Code contenant un interblocage potentiel typedef
int semaphore semaphore resource_1 
semaphore resource_1 semaphore
resource_2  semaphore resource_2 void
process_A(void) void process_A(void)
down(resource_1) 
down(resource_1) down(resource_2) 
down(resource_2)
use_both_resources( ) 
use_both_resources( )
up(resource_2) 
up(resource_2) up(resource_1) 
up(resource_1)
void process_B(void)
void proces_B(void)
down(resource_1) 
down(resource_2) down(resource_2) 
down(resource_1)
use_both_resources( ) 
use_both_resources( )
up(resource_2) 
up(resource_1) up(resource_1) 
up(resource_2)
(a)
(b)
7
Introduction aux interblocages
  • Définition formelleUn ensemble de processus est
    en interblocage si chacun d'eux attend un
    événement qui ne peut être provoqué que par un
    autre processus de l'ensemble.
  • L'événement attendu est habituellement la
    libération d'une ressource
  • Aucun de ces processus ne peut
  • s'exécuter
  • libérer de ressources
  • être réveillé

8
Les 4 conditions d'un interblocage
  • Condition d'exclusion mutuelle
  • chaque ressource est soit attribuée à un seul
    processus, soit disponible
  • Condition de détention et d'attente
  • les processus ayant déjà obtenu des ressources
    peuvent en demander des nouvelles.
  • Pas de réquisition
  • les ressources déjà détenues ne peuvent être
    retirées de force à un processus
  • Condition d'attente circulaire
  • il doit y avoir un cycle d'au moins deux
    processus
  • chacun attend une ressource détenue par un autre
    processus du cycle.

9
Modélisation des interblocages (1)
  • Modélisation au moyen de graphes dirigés
  • La ressource R est détenue par le processus A
  • Le processus B attend après la ressource S
  • Les processus C and D sont en interblocage

10
Modélisation des interblocages (2)
  • Ordonnancement provoquant un interblocage

11
Modélisation des interblocages (3)
  • Interblocage évité par un ordonnacement différent

12
Statégies de gestion des interblocages
  1. Ignorer les problèmes
  2. Les détecter et y remédier
  3. Les éviter de manière dynamique en allouant les
    ressourses avec précaution
  4. Les prévenir en empêchant l'apparition d'une des
    4 conditions de leur existence.

13
La politique de l'autruche
  • Ignorer le problème
  • Raisonnable si
  • les interblocages se produisent rarement
  • le coût de la prévention est élevé
  • UNIX et Windows utilisent cette approche
  • Il existe un compromis entre
  • ce qui est pratique
  • ce qui est correct

14
Détection avec une seule ressource de chaque type
  • Noter la détention et la demande en ressource
  • cycle interblocage

15
Détection avec une seule ressource de chaque type
  1. Pour chaque noeud N faire ce qui suit
  2. Initialiser L à une pile vide et désigner tous
    les arcs comme non marqués
  3. Empiler(N,L) et vérifiez s'il apparaît deux fois.
    Si oui, le graphe contient un cycle et on
    termine.
  4. Si N possède un arc sortant (N, M) non marqué
    alors goto 5, sinon goto 6
  5. Marquer l'arc (N,M), Empiler(M,L) et redéfinir
    NM Goto 3
  6. Si Vide(L) alors on arête sinon Dépiler(L) et
    NDessus(L) Goto 3

16
Détection avec plusieurs ressources de chaque
type (1)
  • Structures de données utilisées par l'algorithme

17
Détection avec plusieurs ressources de chaque
type (2)
Ressources disponibles
Ressources existantes
  • Exemple de détection d'interblocage

18
Reprendre après un interblocage (1)
  • Reprendre au moyen de la préemption
  • Prendre une ressource d'un autre processus
  • dépend de la nature de la ressource
  • Reprendre au moyen du "rollback"
  • enregistrer des points de reprise
  • l'état du processus est sauvé pour être restauré
    ultérieurement
  • reprendre le processus si un interblocage se
    produit

19
Reprendre après un interblocage (2)
  • Reprendre au moyen de la suppression de processus
  • rudimentaire mais simple
  • Suspendre un processus pour libérer ses
    ressources
  • les autres processus peuvent utiliser ses
    ressources
  • choisir un processus pouvant être redémarré
    depuis le début (ex. compilation)

20
Évitement des interblocagesTrajectoires des
ressources
  • Exemple 2 processus

21
États sûr et non sûr
  • On dit d'un état qu'il est sûr s'il n'est pas
    bloqué et qu'il existe un ordonnancement selon
    lequel chaque processus peut s'exécuter jusqu'au
    bout,
  • même si tous demandent d'un seul coup leur nombre
    maximum de ressources.

22
États sûrs et non sûrs (1)
  • Démonstration que l'état de (a) est sûr
  • On suppose quil y a 10 ressources en tout.

23
États sûrs et non sûrs (2)
  • Démonstration que l'état de (b) n'est pas sûr
  • Si A demande et obtient une ressource
    supplémentaire (figure b) alors on est dans un
    état non sur

24
L'algorithme du banquier pour une ressource
unique(Dijkstra 1965)
  • 3 états d'allocation de ressource
  • (a) sûr
  • (b) sûr
  • (c) non sûr

25
L'algorithme du banquier pour plusieurs ressources
  • C R

26
L'algorithme du banquier pour plusieurs ressources
  • Rechercher une rangée R dont les demandes de
    ressources non satisfaites sont inférieur ou
    égales à A
  • Marquez le processus R comme achevé et ajouter
    toutes ses ressources au vecteur A
  • Recommencer les étapes 1 et 2 jusqu'à ce que tous
    les processus soient terminés (état sûr) où
    jusqu'à ce qu'un interblocage se produise (état
    non sûr).
  • Si B demande un scanner, on peut lui accorder car
    létat reste sur
  • Si E en demande un aussi alors on ne peut pas lui
    accorder et il devra patienter.

27
(No Transcript)
28
Prévention des interblocagesS'attaquer à la
condition de l'exclusion mutuelle
  • Certains périphériques (tel que l'imprimante)
    peuvent être spoolés (traités en différé)
  • seul le démon d'imprimante peut directement
    utiliser l'imprimante
  • cela élimine les interblocages
  • Tous les périphériques ne peuvent être spoulés.
  • Principe
  • éviter d'attribuer une ressource lorsque cela
    n'est pas absolument nécessaire
  • le plus petit nombre possible de processus
    peuvent réclamer la ressource

29
S'attaquer à la condition de détention et
d'attente
  • Exige que les processus demandent toutes ses
    ressources avant l'exécution
  • le processus n'attend jamais après une ressource
  • Problèmes
  • peut ignorer le nombre de ressources qu'il aura
    besoin
  • (sinon on pourrait utiliser lalgorithme du
    banquier)
  • les ressources ne sont pas utilisées de manière
    optimale
  • Variation
  • un processus doit libérer toutes les ressources
    qu'il détient
  • il obtient ensuite tout ce dont il a besoin en
    une seule fois

30
S'attaquer à la condition de non-préemption
  • Cette option est difficilement réalisable
  • Considérer un processus utilisant une imprimante
  • au milieu de la tâche
  • réquisitionner l'imprimante
  • !!??
  • Solution dans ce cas utiliser
  • le disque et le
  • démon dimpression


31
S'attaquer à la condition de l'attente circulaire
(1)
  • Ressources ordonnées numériquement
  • Un processus peux demander plusieurs ressources
    mais il doit respecter lordre
  • Dans lexemple, si iltj alors
  • A peux demander i
  • B ne peux pas demander i sansdabord libérer j
  • Le problème est quil est difficile de trouver un
    ordonnancement adéquat

32
Autres considérationLe verrouillage en deux
phases
  • Méthode utilisé pour des applications
    spécifiques
  • Exemple Bases de données
  • Première phase
  • Le processus tente de verouiller plusieurs
    enregistrements (un à la fois)
  • Si un enregistrement est déjà verrouillé, il
    libère les verrous et recommence.
  • (aucun véritable travail est effectué)
  • Lorsque la première phase se termine, on commence
    la seconde
  • effectuer les modifications
  • libérer les verrous
  • Similaire à demander toutes les ressources à la
    fois
  • Cette solution n'est pas toujours possible
  • Exemple systèmes à temps réel

33
Les interblocages de communication
  • Deux processus se bloquent mutuellement
  • chacun attend que l'autre accomplisse une tâche
  • Par exemple, A envoie à B un message qui se perd.
    A attend la réponse de B et B attend le message
    de A.

34
Les interblocages actifs
  • Se produit, par exemple lorsque deux processus
    utilise lattente circulaire pour obtenir des
    ressources.
  • A obtient la ressource R1 et boucle pour obtenir
    R2
  • B obtient R2 et boucle pour obtenir R1
  • Les deux processus utilisent inutilement le
    processeur.
  • Autre exemple. Supposons que la table des
    processus contiennen 100 entrées
  • 10 processus ont besoin den créer 12 chacun
  • Ils en obtiennent chacun 9
  • Les 10 processus boucleront sans fin

35
La privation des ressources
  • Algorithme d'allocation des ressources
  • peut être de servir les tâches les plus courtes
    en premier
  • Fonctionne bien pour les petites tâches
  • Peut affamer les longues tâches
  • même si elles ne sont pas bloquées
  • Solution
  • politique premier arrivé, premier servi
Write a Comment
User Comments (0)
About PowerShow.com