L2 / Systèmes d'exploitation TD - Interblocages Exercice 1 - Graphe d'allocation Objectif : utilisation du graphe d’allocation de ressources On considère un système constitué de 9 processus A, … I et comportant 7 ressources R, … X. L'attribution des ressources est la suivante : Le processus A détient R et demande S. Le processus B ne détient pas de ressource et demande T. Le processus C ne détient pas de ressource et demande S. Le processus D détient U et demande S et T. Le processus E détient T et demande V. Le processus F détient W et demande S. Le processus G détient V et demande U. Le processus H détient X et demande U. Le processus I ne détient pas de ressource et demande X. Construisez le graphe d'allocation de ressources correspondant. Y a-t-il interblocage, et si oui, quels sont les processus directement concernés ? Cela a-t-il une incidence sur les autres ? Exercice 2 – Ressources multi instances Objectif : Utilisation de l’algorithme de détection de blocages dans le cas de ressources multi-instances On suppose qu'un système possède 5 processus, qu'il dispose de 6 périphériques de stockage (R1), de 3 scanners (R2), de 4 imprimantes (R3) et de 2 lecteurs DVD (R4). La matrice d'allocation est : La matrice des demandes maximales est : R1 R2 R3 R4 R1 R2 R3 R4 P1 3 0 1 1 P1 4 1 1 1 P2 0 1 0 0 P2 0 2 1 2 P3 1 1 1 0 P3 4 2 1 0 P4 1 1 0 1 P4 1 1 1 1 P5 0 0 0 0 P5 2 1 1 0 Donnez la matrice des besoins et le vecteur dispo. Peut-on éviter le blocage ? Y a t-il des scénarios qui conduisent à des blocages ? On suppose que la demande de P1 en scanners (R2) est maintenant nulle et celle de P4 égale à 2. Que peut-on dire cette fois ? Exercice 3 – Étude de la sûreté du système Objectif : étude d’un système, distinction entre évitabilité et impossibilité a – On considère un système comportant 5 processus et une ressource R à 11 instances (par exemple des emplacements sur le disque). Chaque processus a besoin d’au maximum 3 instances de la ressource. 1 Montrez qu’il ne peut pas y avoir d’interblocage. b – On généralise l’exemple précédent : N processus se partagent M instances d’une ressource R. Chaque processus a besoin d’au maximum T instances (et on suppose que T <= M sinon, il est clair que ça ne peut pas marcher du tout). On suppose, de plus, que la somme totale de toutes les demandes des processus est plus petite que M + N. Montrez qu’il ne peut pas y avoir d’interblocage. c – On suppose maintenant qu’il y a 5 processus, et deux ressources R1 et R2. R1 possède 6 instances et R2 possède 11 instances. Chaque processus a besoin d’au maximum 2 instances de R1 et de 3 instances de R2. Si l’on considère chaque ressource indépendamment (les processus ont besoin des instances de l’une des ressources, les libèrent puis prennent les instances de l’autre ressource), le résultat de la question 2 assure qu’il n’y aura pas d’interblocage. Montrez que par contre, si l’on prend en compte les deux ressources (i.e. les processus ont besoin des instances des deux ressources conjointement), il peut y avoir interblocage. d – On suppose maintenant que l’on dispose de 7 instances de la ressource R1 et de 14 instances de R2, et on garde les hypothèses de la question 3. Montrez que cette fois, il ne peut pas y avoir d’interblocage. Exercice 4 – Evitement Objectif : analyse d’un système multi-ressources et multi-instances 1 - On considère un système comportant 4 types de ressources (r1, r2, r3 et r4). Il y a 5 processus P1, P2, P3, P4 et P5. On donne la matrice des besoins maximaux et la matrice d'allocation. r1 r2 r3 r4 r1 r2 r3 r4 4 1 0 1 P1 7 2 0 1 P1 2 0 1 2 P2 14 1 1 2 P2 Max = 6 2 1 2 P3 et Alloc = 1 2 1 0 P3 . 3 3 0 0 P4 2 1 0 0 P4 2 2 0 0 P5 5 4 2 1 P5 ( ) ( ) Par ailleurs, on donne Dispo = (4 1 1 0). a – Calculez la matrice Besoin et le vecteur Exist. b – Peut-on éviter l'interblocage ? 2 – On considère maintenant un système de 4 processus P1, P2, P3 et P4, possédant deux ressources multi-instances R1 et R2. Les besoins des processus sont les suivants : P1 : 2 instances de R1 et 1 de R2 P2 : 2 instances de R1 et 2 de R2 P3 : 3 instances de R1 et 3 de R2 P4 : 3 instances de R1 et 1 de R2 Existe-t-il des situations d'interblocage : a – S'il y a 7 instances de R1 et 5 de R2 ? b – S'il y a 9 instances de R1 et 6 de R2 ? 2