Chapitre 3 Interblocages 3.1. Ressources

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
La recherche de chemin optimal
Module Systèmes d’exploitation
A l’issue des conseils de classe de 3ème,
Chapitre annexe. Récursivité
Fabrice Lauri, François Charpillet, Daniel Szer
Licence pro MPCQ : Cours
Fonctions & procédures
Classe : …………… Nom : …………………………………… Date : ………………..
Calculs de complexité d'algorithmes
Raisonnement et logique
Les Prepositions.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Chapitre 3 Interblocages
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Chap. 1 Structures séquentielles : listes linéaires
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Récursivité.
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Les structures de données arborescentes
Synchronisation et communication entre processus
II. Chaînage, SDD séquentielles
Heuristiques A. Introduction B. Recherche d ’une branche
1 CORRIGE DES CAS. 2 Avant de se planter dans le 7, cette flèche a percuté l'encoche de la flèche plantée dans le CAS N° 1.
1.2 COMPOSANTES DES VECTEURS
Système d’exploitation
Configuration de Windows Server 2008 Active Directory
Interblocage = impasse (Deadlock)
La Saint-Valentin Par Matt Maxwell.
Algorithme de Bellman-Ford
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Module 6 - Interblocage = impasse (Deadlock)
Admission Post-Bac Comment ?. 1 ère étape - L'inscription par internet 1. Enregistrez-vous sur Internet afin de constituer votre dossier électronique.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Algorithmes d ’approximation
Notre calendrier français MARS 2014
L’OFFRE ET LA DEMANDE.
C'est pour bientôt.....
Veuillez trouver ci-joint
Ordonnancement de tâches
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Synchronisation Classique
Atelier de formation : MAT optimisation II (les graphes).
Programmation linéaire en nombres entiers : les méthodes de troncature
ASI 3 Méthodes numériques pour l’ingénieur
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Equation différentielle
Ch. PAUL - Piles et Files à l'aide de listes chainées
CALENDRIER-PLAYBOY 2020.
LES PILES ET FILES.
Cours des Systèmes d’exploitations
Admission Post-Bac Comment ?. 1 ère étape - L'inscription par internet 1. Enregistrez-vous sur Internet afin de constituer votre dossier électronique.
Gestion de processus Corrigé TD 1 EFREI I
Interactions entre Processus
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Systèmes d’exploitation
Interblocage = impasse (Deadlock)
Transcription de la présentation:

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 3.5. L'évitement des interblocages 3.6. La prévention des interblocages 3.7. Autres considérations

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

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.

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é

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)

Ressources (4) Figure 3.2 : (a) Code exempt d’interblocage. (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)

Introduction aux interblocages Définition formelle: Un 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é

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.

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

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

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

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

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

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

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

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

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

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

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)

Évitement des interblocages Trajectoires des ressources Exemple: 2 processus

É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.

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

É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

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

L'algorithme du banquier pour plusieurs ressources C R

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.

Prévention des interblocages S'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

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 l’algorithme 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

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 d’impression

S'attaquer à la condition de l'attente circulaire (1) Ressources ordonnées numériquement Un processus peux demander plusieurs ressources mais il doit respecter l’ordre Dans l’exemple, si i<j alors A peux demander i B ne peux pas demander i sansd’abord libérer j Le problème est qu’il est difficile de trouver un ordonnancement adéquat

Autres considération Le 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

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.

Les interblocages actifs Se produit, par exemple lorsque deux processus utilise l’attente 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 d’en créer 12 chacun Ils en obtiennent chacun 9 Les 10 processus boucleront sans fin

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