INTERBLOCAGE. C.Coquery NFP

Documents pareils
Cours de Base de Données Cours n.12

Partie 7 : Gestion de la mémoire

Cours de Systèmes d Exploitation

Chapitre 4 : Exclusion mutuelle

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre 5 : Flot maximal dans un graphe

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Cours A7 : Temps Réel

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Le cluster à basculement

L exclusion mutuelle distribuée

Cours Bases de données 2ème année IUT

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Données Réparties. Thibault BERNARD.

Optimisation for Cloud Computing and Big Data

Pourquoi l apprentissage?

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Contrainte de flot pour RCPSP avec temps de transfert

Ordonnancement temps réel

Intelligence Artificielle Planification

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Guide d utilisation de la base de données bibliographiques. Centre de ressources - IFsanté

Plus courts chemins, programmation dynamique

Introduction aux algorithmes répartis

Parallélisme et Répartition

Technologie SDS (Software-Defined Storage) de DataCore

V 8.2. Vous allez utiliser les services en ligne de la plate forme de dématérialisation de la Salle des Marchés achatpublic.com.

Systemes d'exploitation des ordinateurs

Encryptions, compression et partitionnement des données

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Bases de données avancées Concurrence d'accès et reprise

Resolution limit in community detection

Annexe 6. Notions d ordonnancement.

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Systèmes et algorithmes répartis

<Insert Picture Here> Solaris pour la base de donnés Oracle

Windows Server 2008 Administration et exploitation

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

CH.3 SYSTÈMES D'EXPLOITATION

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Les diagrammes de modélisation

Problèmes liés à la concurrence

gestion des processus La gestion des processus

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Triangle de Pascal dans Z/pZ avec p premier

FONCTION DE DEMANDE : REVENU ET PRIX

Manuel de validation Fascicule v4.25 : Thermique transitoire des structures volumiques

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

SYSTÈME DE GESTION DE FICHIERS

Gestion de clusters de calcul avec Rocks

1. faciliter la création des sociétés à responsabilité limitée (SARL) :

Cours de Génie Logiciel

Guichet automatique de banque

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Pour une maîtrise totale de la reprise d activité : bonnes pratiques de continuité d activité et de virtualisation L I V R E B L A N C

Haute disponibilité avec PostgreSQL

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

Réplication des données

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Présentation du Master Ingénierie Informatique et du Master Science Informatique , Année 2 Université Paris-Est Marne-la-Vallée

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Module BDR Master d Informatique (SAR)

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Jean-Philippe Préaux

La haute disponibilité

UE 8 Systèmes d information de gestion Le programme

Architectures d implémentation de Click&DECiDE NSI

Addenda du Guide de l administrateur

LIVRE BLANC. Mise en œuvre d un programme efficace de gestion des vulnérabilités

Conception des systèmes répartis

Concilier mobilité et sécurité pour les postes nomades

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours de Master Recherche

Concept de machine virtuelle

Surveiller les applications et les services grâce à la surveillance réseau

L éduca onfinancière. Manuelduparticipant Lacotedecrédit. Unedivisionde

I. Objectifs de ce document : II. Le changement d architecture :

Manuel Utilisateur MISE A JOUR DU CLIENT SOFIE VERS LA VERSION 5. v0.99

Sauvegarde et archivage

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Transcription:

INTERBLOCAGE C.Coquery NFP137 2009 1

Modèle de Système Plan Caractérisation de l interblocage Approches du problème Formalisation de l interblocage Une approche combinée de différentes méthodes C.Coquery NFP137 2009 2

Modèle de Système Environnement multiprogrammé Nombre fini de ressources partagées par des processus concurrents C.Coquery NFP137 2009 3

Modèle de Système Ressource Tout objet informatique matériel ou logiciel nécessaire à l exécution d un programme Exemples de ressources : cycles processeur, fichiers, périphériques d E/S, mémoire, processus, sémaphores C.Coquery NFP137 2009 4

Modèle de Système Caractérisation des ressources - matérielle ou logicielle - à accès unique ou multiple - banalisée ou unique - virtuelle ou physique - préemptible ou non préemptible C.Coquery NFP137 2009 5

Modèle de Système Caractérisation des ressources Ressources banalisées ou unique - Ressource banalisée : ensemble d instances de ressource identiques et allouables indifféremment, appelée classe Exemple : les pages d une mémoire paginée - Ressource unique : 1 seul exemplaire de la ressource C.Coquery NFP137 2009 6

Modèle de Système Caractérisation des ressources Ressource préemptible ou non préemptible - Préemptible : la ressource peut être retirée à un processus sans dommage Exemple : pages de mémoire dans une gestion de mémoire paginée, cycles processeur - Non préemptible : la ressource ne peut être retirée Exemple : une imprimante C.Coquery NFP137 2009 7

Modèle de Système Utilisation d une ressource On considère trois étapes : 1. Demande de la ressource : attente du processus si la ressource est détenue par un autre processus. Réalisée par un appel système pour les ressources physiques. 2. Utilisation de la ressource 3. Libération de la ressource C.Coquery NFP137 2009 8

Exemple introductif Allocation dynamique de mémoire Réserve = 16 pages allouables à 3 processus P1 P2 P3 demande 3 pages demande 4 pages demande 4 pages reste 5 pages demande 2 pages demande 1 page demande 2 pages reste 0 page demande 1 page demande 2 pages demande 2 pages Interblocage : tous les processus sont bloqués C.Coquery NFP137 2009 9

Exemple introductif Accès en écriture à des fichiers 2 fichiers allouables à 2 processus P1 P2 ouvrir(f, écriture) ouvrir(g, écriture) fermer(f) fermer(f) fermer(g) fermer(g) ouvrir(g, écriture) ouvrir(f, écriture) Interblocage : si on alloue F à P1, puis G à P2, les 2 processus sont bloqués C.Coquery NFP137 2009 10

Caractérisation de l interblocage Définition Un ensemble de processus est en interblocage si chacun est en attente d un événement qui ne peut être produit que par un processus de l ensemble. Le plus souvent l événement attendu est la libération d une ressource par un processus de l ensemble C.Coquery NFP137 2009 11

Caractérisation de l interblocage Conditions nécessaires 1. Exclusion mutuelle : ressource allouée exclusivement à un processus 2. Allocation dynamique et accumulation des ressources 3. Pas de préemption des ressources acquises 4. Attente circulaire : il existe un cycle de processus : P 0 attend P 1 attend P 2.P n attend P 0 C.Coquery NFP137 2009 12

Caractérisation de l interblocage Interblocage passif «deadlock» Les processus en attente de ressources sont bloqués par l allocateur Interblocage actif «livelock» Les processus en attente de ressources testent la disponibilité des ressources et se bloquent eux-mêmes C.Coquery NFP137 2009 13

Caractérisation de l interblocage Interblocage non lié aux ressources Exemple : blocage mutuel de deux processus qui attendent chacun que l autre ait exécuté une tâche Dû à une mauvaise programmation des actions de synchronisation C.Coquery NFP137 2009 14

Interblocage non lié aux ressources contexte commun sémaphore S1,S2; E0(S1,0); E0(S2,0); Processus P1 Processus P2 // P1 attend P2 // P2 attend P1 P(S1); P(S2); // P1 active P2 // P2 active P1 V(S2); V(S1); C.Coquery NFP137 2009 15

Modélisation (Holt) Graphe d allocation de ressources P2 détient R1 P1 requiert R1 R1 R3 Ressources Processus P1 P2 P3 Nombre d instances par ressource R2 R4 C.Coquery NFP137 2009 16

Gestion de l interblocage Approches 1. Ignorer le problème 2. Détection puis guérison 3. Prévention en empêchant l apparition d une condition nécessaire 4. Évitement en allouant les ressources avec précaution C.Coquery NFP137 2009 17

1. La politique de l autruche La plupart des systèmes ignorent le problème UNIX, Windows - on suppose que la survenue d un interblocage est peu probable - Le coût de la prévention ou de la détection en termes de contraintes pour l utilisateur et de ressources pour le système est élevé - Études statistiques : dimensionnement des tables de processus, tables des nœuds (fichiers) C.Coquery NFP137 2009 18

2. Détection Guérison C.Coquery NFP137 2009 19

Détection Cas 1 Une seule instance par ressource interblocage s il existe un cycle dans le graphe Cas 2 Plusieurs instances par ressource L existence d un cycle n implique pas forcément un interblocage; la non-existence de cycle implique qu il n y a pas interblocage C.Coquery NFP137 2009 20

Exemple d interblocage P2 détient R1 P1 requiert R1 R1 R3 Ressources Tâches P1 P2 P3 Nombre d instances par ressources R2 R4 C.Coquery NFP137 2009 21

Détection d un interblocage Cas d une instance par ressource Utiliser un algorithme de recherche d un cycle dans un graphe, complexité en 0(n 2 ) où n est le nombre d arcs. En général, nombreux processus et ressources Algorithme coûteux Inadapté si plusieurs instances de ressources C.Coquery NFP137 2009 22

Guérison d un interblocage Préemption de ressource Retirer temporairement une ressource à un processus pour l attribuer à un autre. Dépend du type de ressource, demande souvent une intervention manuelle. C.Coquery NFP137 2009 23

Guérison d un interblocage Destruction de processus Choix du ou des processus? - tous les processus interbloqués - des processus un par un jusqu à cessation de l interblocage Critères : priorité, temps de calcul déjà attribué, types et nombre de ressources possédés, besoins ultérieurs, interactivité ou batch C.Coquery NFP137 2009 24

Guérison d un interblocage Reprise arrière ou rollback après préemption Principe : périodiquement enregistrer l état de chaque processus Restaurer l état du processus avant l acquisition de la ressource par le processus et sa préemption Le travail depuis le dernier point de reprise est perdu C.Coquery NFP137 2009 25

Guérison d un interblocage Reprise arrière ou rollback après préemption Les questions : 1 Le choix d une victime 2 Reprise totale 3 Risque de famine C.Coquery NFP137 2009 26

2. Prévention des interblocages Supprimer une des conditions nécessaires à la survenue d un interblocage : 1. La condition d exclusion mutuelle En général impossible exemples partage d une imprimante, d une page mémoire. - Pour certains périphériques, mécanisme de spoule permettant de différer l utilisation de la ressource Idée : n attribuer une ressource que si absolument nécessaire C.Coquery NFP137 2009 27

2. Allocation dynamique et accumulation Les processus demandent toutes les ressources nécessaires à leur exécution. Allocation globale Inconvénients : - un processus doit connaître tous ses besoins en ressources - Mauvaise utilisation des ressources - Famine possible de certains processus Applicable dans les systèmes à traitement par lots C.Coquery NFP137 2009 28

2. Allocation dynamique et accumulation Allocation globale à un instant Les processus demandent les ressources nécessaires à leur exécution à un instant donné s ils ne possèdent aucune ressource, puis ils libèrent les ressources acquises. Inconvénient : Famine possible de certains processus C.Coquery NFP137 2009 29

3. Condition de non-préemption Difficile Utilisé pour certaines ressources dont l état peut être facilement sauvegardé et restauré : pages mémoire, registres Impossible pour certaines ressources : imprimantes, C.Coquery NFP137 2009 30

4. Condition d attente circulaire Allocation par classes ordonnées Classe =ensemble des instances d une ressource Les classes sont ordonnées a priori - demande et allocation dans l ordre - demande globale par classe Meilleure utilisation des ressources si l ordre est bien choisi. OS/MVT fichiers, mémoire, périphériques C.Coquery NFP137 2009 31

4. Condition d attente circulaire (suite1) allocation par classes ordonnées 2 processus : P1 P2, 2 ressources : R1 R2 Soit la séquence suivante : P1 demande et obtient R1, P2 demande et obtient R2 P1 demande R2 : attente, P2 demande R1 : attente interblocage Si R1 et R2 sont demandées dans le même ordre, Un seul des 2 processus attend, pas d interblocage C.Coquery NFP137 2009 32

4. Condition d attente circulaire (suite2) Utiliser la méthode des classes ordonnées : - on évite l attente circulaire - souvent difficile de trouver un ordre satisfaisant nombre de ressources élevé et diversité de leur utilisation C.Coquery NFP137 2009 33

Résumé des approches de prévention statique Condition Exclusion mutuelle Allocation dynamique et accumulation Non-préemption Attente circulaire Approche Traitement en différé Allocation globale Retirer des ressources Allocation par classes ordonnées C.Coquery NFP137 2009 34

4. Prévention dynamique Chaque processus annonce son besoin maximum en ressources. Rôle de l allocateur : - vérifier avant de satisfaire une requête, qu il pourra alors satisfaire toutes les requêtes futures, l état du système est dit fiable - dans le cas contraire, retarder l allocation en bloquant momentanément le processus, car il y a risque d interblocage. C.Coquery NFP137 2009 35

Exemple synthèse(1) C.Coquery NFP137 2009 36

Exemple synthèse(2) C.Coquery NFP137 2009 37

Exemple synthèse(3) C.Coquery NFP137 2009 38

Exemple synthèse(4) C.Coquery NFP137 2009 39

Formalisation de l interblocage Système = (P, E, X, A, R) P={P 1, P 2, P n } ensemble fini de processus E={R 1, R 2, R m } ensemble de classes de ressources X= (x i ) x i nombre de ressources initial de la classe R i A(t)=(a ij ) a ij nombre de ressources de la classe R j allouées au processus P i à l instant t NR(t)=(nr ij ) nr ij nouvelle requête de ressources de la classe R j par le processus P i à l instant t C.Coquery NFP137 2009 40

Formalisation de l interblocage Conventions - Pour alléger la notation, on ne mentionnera pas le moment de l observation t : A(t) est noté A A[i] représente le vecteur courant d allocation de ressources pour le processus P i A= A[i] i=1..m Idem pour les autres matrices - Soient X et Y vecteurs de taille n X Y si X[i] Y[i] tout i=1 n C.Coquery NFP137 2009 41

Formalisation de l interblocage Changements d états du système Soit D=X-A la disponibilité en ressources Requête P i demande à l instant t une nouvelle requête N NR[i]< NR[i] + N Acquisition allocation à P i de M A[i]< A[i] + M en fait M=NR[i] et NR[i]< 0 D< D - M Libération par P i de H A[i]< A[i] - H D< D + H C.Coquery NFP137 2009 42

Formalisation de l interblocage Hypothèses tout processus libère au bout d un temps fini ses ressources l état du système est réalisable : - la demande d un processus ne peut excéder le nombre initial de ressources - un processus ne peut acquérir plus de ressources qu il n a demandées - la somme des allocations aux processus ne peut dépasser le nombre initial de ressources C.Coquery NFP137 2009 43

Détection de l interblocage Absence d interblocage Il existe une suite d états réalisables telle que tout processus obtienne sa requête à l instant considéré et s exécute jusqu à sa fin. Action de l allocateur Ranger les processus dans un ordre tel que leur requête soit satisfaite s ils s exécutent dans cet ordre. Interblocage si on ne peut inclure au moins un processus dans la suite de processus. C.Coquery NFP137 2009 44

Détection de l interblocage État sain Suite saine Soient S = suite de processus S(k) le rang du processus dans la suite S est une suite saine si à l instant considéré, on vérifie tout P i, NR[i] D + A[j] S(j)<S(i) État sain Il existe une suite saine contenant tous les processus Absence d interblocage = état sain C.Coquery NFP137 2009 45

Détection de l interblocage Algorithme de détection de l interblocage Soient : T[1..m] les ressources potentiellement disponibles F[1..n] F[i]= vrai si P i est dans la suite saine, faux sinon 1. initialisation T=D ressources disponibles, trouvé=vrai; F[i]=faux pour tout processus 2. tant que trouvé et il existe P j t.q. non F[j] faire rechercher i tel que non F[i] et NR[i] T; si i n existe pas alors trouvé=faux; sinon F[i]=vrai; T=T+A[i];finsi;fait; 3. si pour tout i, F[i]==vrai, alors pas d interblocage sinon les processus t.q. F[i]==faux sont en interblocage C.Coquery NFP137 2009 46

Exemple m=3 n=5 X=(7,2,6) Allocation A B C Requête A B C Disponible A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 P 3 P 4 3 0 3 2 1 1 0 0 2 0 0 0 1 0 0 0 0 2 C.Coquery NFP137 2009 47

Exemple(suite) F=(faux,faux,faux,faux,faux) T=(0,0,0) Choix de P 0 : F=(vrai,faux,faux,faux,faux) T=(0,1,0) Choix de P 2 : F=(vrai,faux,vrai,faux,faux) T=(3,1,3) Choix de P 3 : F=(vrai,faux,vrai,vrai,faux) T=(5, 2,4) Choix de P 1 : F=(vrai,vrai,vrai,vrai,faux) T=(7, 2,4) Choix de P 4 : F=(vrai,vrai,vrai,vrai,vrai) T=(7, 2,6) (P 0, P 2, P 3, P 1, P 4 ) est une suite saine complète Il n y a pas d interblocage. C.Coquery NFP137 2009 48

Exemple(suite) Supposons que P 2 demande une ressource de type C Allocation Requête Disponible A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 1 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 Choix de P 0 : T=(0 1 0) : on ne peut satisfaire aucun autre processus. P 1, P 2, P3, P 4 sont en interblocage C.Coquery NFP137 2009 49

Détection Conclusion Complexité de l algorithme en temps O(m x n 2 ) en mémoire O(m x n) L exécution de l algorithme à chaque nouvelle requête est prohibitive en temps Nombre fixe de ressources et de processus Reconfigurer les matrices en cas de changements C.Coquery NFP137 2009 50

Prévention dynamique Un processus doit annoncer son besoin maximum en ressources Max=[max ij ] max ij besoin maximum du processus P i pour la ressource R j B=[b ij ] b ij =max ij - a ij besoin de P i pour atteindre son maximum à l instant considéré. C.Coquery NFP137 2009 51

Prévention dynamique Pas de risque d interblocage Il existe une suite d états sains t.q. tout processus peut obtenir son besoin maximum et s exécuter jusqu à sa fin : état fiable Hypothèses tout P i, Max[i] X, A[i] Max[i], A[i] + B[i] Max[i] Suite fiable S=suite de processus tout P i dans S, B[i] D + A[j] S(j)<S(i) Si S contient tous les processus le système est dans un état fiable C.Coquery NFP137 2009 52

Prévention dynamique Action de l allocateur -Ranger les processus dans un ordre tel que leur besoin maximum puisse être satisfait s ils s exécutent dans cet ordre état fiable. Il y a risque d interblocage, si on ne peut inclure au moins un processus dans la suite de processus. -Satisfaire une requête si partant d un état fiable, cette allocation laisse le système dans un état fiable sinon différer l allocation. C.Coquery NFP137 2009 53

Prévention dynamique Algorithme du banquier (Dijkstra) - détection d un état fiable Soient : T[1..m] les ressources potentiellement disponibles F[1..n] F[i]= vrai si P i est dans la suite fiable, faux sinon 1. initialisation T=D ressources disponibles, trouvé=vrai; F[i]=faux pour tout processus 2. tant que trouvé et il existe P j t.q.f[j]==faux faire rechercher i tel que non F[i] et B[i] T; si i n existe pas alors trouvé=faux; sinon F[i]=vrai; T=T+A[i];finsi;fait; 3. si pour tout i, F[i]==vrai, alors pas d interblocage l état du système est fiable. C.Coquery NFP137 2009 54

Prévention dynamique Algorithme du banquier (Dijkstra-Habermann) - Partant d un état fiable, satisfaire une requête d un processus P i NR[i] si l état reste fiable. Simuler l allocation : D = D - NR[i]; A[i] = A[i] + NR[i]; B[i] = B[i] - NR[i]; Appliquer l algorithme de l état fiable : si l état reste fiable, alors satisfaire la requête sinon différer l allocation. C.Coquery NFP137 2009 55

Prévention dynamique Exemple m = 3, n=5, X = (10,5,7) À un instant t, on a l état suivant : Allocation Max Besoin Disponible A B C A B C A B C A B C P 0 0 1 0 7 5 3 7 4 3 3 3 2 P 1 2 0 0 3 2 2 1 2 2 P 2 3 0 2 9 0 2 6 0 0 P 3 2 1 1 2 2 2 0 1 1 P 4 0 0 2 4 3 3 4 3 1 C.Coquery NFP137 2009 56

Exemple (suite) Prévention dynamique Choix de P 1 : F=(faux,vrai,faux,faux,faux) T=(5,3,2) Choix de P 3 : F=(faux,vrai,faux,vrai,faux) T=(7,4,3) Choix de P 4 : F=(faux,vrai,faux,vrai,vrai) T=(7,4,5) Choix de P 2 : F=(faux,vrai,vrai,vrai,vrai) T=(10,4,7) Choix de P 0 : F=(vrai,vrai,vrai,vrai,vrai) T=(10,5,7) L état est fiable C.Coquery NFP137 2009 57

Prévention dynamique Exemple (suite) Supposons que NR[1]=(1,0,2) On simule l allocation, l état est fiable, on satisfait la requête de P 1 Allocation Max Besoin Disponible A B C A B C A B C A B C 2 3 0 0 2 0 P 0 0 1 0 7 5 3 7 4 3 P 1 3 0 2 3 2 2 P 2 3 0 2 9 0 2 6 0 0 P 3 2 1 1 2 2 2 0 1 1 P 4 0 0 2 4 3 3 4 3 1 C.Coquery NFP137 2009 58

Prévention dynamique Exemple (suite) Supposons que R[4]=(3,3,0) pas assez de ressources disponibles, la requête de P 4 est différée Allocation Max Besoin Disponible A B C A B C A B C A B C P 0 0 1 0 7 5 3 7 4 3 2 3 0 P 1 3 0 2 3 2 2 0 2 0 P 2 3 0 2 9 0 2 6 0 0 P 3 2 1 1 2 2 2 0 1 1 P 4 3 3 2 4 3 3 4 3 1 C.Coquery NFP137 2009 59

Prévention dynamique Exemple (suite) Supposons que R[0]=(0,2,0) Le besoin d aucun processus ne peut être satisfait État non fiable l allocation est différée Allocation Max Besoin Disponible A B C A B C A B C A B C 2 1 0 0 2 0 P 0 2 3 0 7 5 3 5 2 3 P 1 3 0 2 3 2 2 P 2 3 0 2 9 0 2 6 0 0 P 3 2 1 1 2 2 2 0 1 1 P 4 3 3 2 4 3 3 4 3 1 C.Coquery NFP137 2009 60

Prévention dynamique Complexité de l algorithme en temps O(m x n 2 ) en mémoire O(m x n) L exécution de l algorithme à chaque requête est prohibitive en temps. Contrainte pour les processus Annoncer leur besoin maximum Nombre fixe de ressources et de processus Reconfigurer les matrices en cas de changements C.Coquery NFP137 2009 61

Prévention dynamique Cas d une seule classe de ressource - Peut être appliqué plus aisément par exemple pour des blocs disques, des pages de mémoire - Simplification des algorithmes : Trier les processus par besoin max croissant (B[i]), si on peut satisfaire le processus candidat, puis le premier processus de la suite triée alors succès, sinon échec. S il y a égalité des Max[i], alors il suffit de ne faire une allocation que si on peut satisfaire le processus le mieux pourvu. C.Coquery NFP137 2009 62

Exemple 50 clusters disques Disponible = 50 (14+7+9+14) P1 4 P2 3 P3 3 P4 2 1 3 4 9 2 4 7 1 t1 P1 Allocation 14 Requête 7 6 5 7 2 P2 7 9 7 5 2 2 1 2 9 P3 9 7 1 TOTAUX 22 26 21 23 P4 14 9 Disponible Aucune requête ne peut être satisfaite avec le disponible restant Interblocage C.Coquery NFP137 2009 63 6

50 clusters disques Disponible = 50 (14+21+2+12) P1 4 P2 3 P3 3 P4 2 1 3 4 9 2 4 7 1 t2 P1 Allocation 14 Requête 7 6 5 7 2 P2 21 5 7 5 2 2 1 2 9 P3 2 3 1 TOTAUX 22 26 21 23 P4 12 2 Disponible Aucune requête ne peut être satisfaite avec le disponible restant Interblocage C.Coquery NFP137 2009 64 1

50 clusters disques Disponible = 50 (8+16+9+14) P1 P2 P3 P4 t3 Allocatio 1 4 2 7 n Requête Disponible 4 3 3 2 3 9 4 1 P1 8 6 3 6 5 7 2 7 5 2 2 P2 16 5 1 2 9 P3 9 7 1 TOTAUX 22 26 21 23 P4 14 9 Aucune requête ne peut être satisfaite avec le disponible restant Interblocage C.Coquery NFP137 2009 65

50 clusters disques Disponible = 50 (14+7+2+9) P1 P2 P3 P4 1 4 3 6 7 1 4 3 9 5 5 2 3 4 7 2 2 1 7 2 1 2 2 9 t4 P1 P2 P3 Allocation 14 Besoin max 12 19 24 22 26 21 23 P4 9 1 17 7 2 Requête 7 9 3 Disponible 18 On suppose MAX = 26 tout P i État sans interblocage C.Coquery NFP137 2009 66

Servir Pi tel que le disponible restant permette d atteindre le maximum pour une des tâches restantes Servir P1 (requete = 7) (disponible = 11) (besoin= 5) P1 peut atteindre son Max=26 Servir P2 (requete=9) (disponible=9) (besoin=10) Aucun processus ne peut atteindre 26 Servir P3 (requete=3) (disponible=15) (besoin=21) aucun processus ne peut atteindre 26 Servir P4 (requete=1) (disponible=17) (besoin=16) P1 peut atteindre 26 On peut servir P1 ou P4 sans risque d interblocage C.Coquery NFP137 2009 67

Gestion de l'interblocage par une approche combinée de différentes méthodes Principe - Partitionner les ressources en classes hiérarchiquement ordonnées - Appliquer la méthode des classes ordonnées - A l'intérieur de chaque classe, appliquer la technique la plus appropriée prévention statique, dynamique, détection, guérison C.Coquery NFP137 2009 68

Gestion de l'interblocage par une approche combinée de différentes méthodes Exemple Système composé de 4 classes de ressources : - Ressources internes : ressources utilisées par le système, par exemple bloc de contrôle d'un processus - Mémoire centrale : mémoire utilisée par un processus - Resssources d'un processus : fichiers, périphériques à accès unique - Espace de va-et-vient C.Coquery NFP137 2009 69

Gestion de l'interblocage par une approche combinée de différentes méthodes Technique à l'intérieur de chaque classe Ressources internes : prévention statique méthode des classes ordonnées Mémoire centrale : prévention par préemption (swapping de processus) Resssources d'un processus : prévention statique ou dynamique Espace de va-et-vient : faire une préallocation, on connaît en général la taille maximale de l'espace de vaet-vient pour un processus C.Coquery NFP137 2009 70