TD Interblocage 2021

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

UNIVERSITE- OEB

DEPARTEMENT DE MATHEMATIQUE ET D'INFORMATIQUE

Module: Système d’exploitation II - 3ème année LMD Année universitaire : 2020-2021


Enseignant : Mer Benaboud. Série de TD N° :

Les interblocages

Exercice N° :01
Le graphe d’allocation de ressources pour un système à un moment donné est le suivant:

Y a-t-il risque d’interbloquage en ce moment? Si oui, justifier. Si non, modifier ce graphe en


ajoutant une flèche pour que le risque d’interbloquage existe.

Exercice N° :02
Circulation routière. Considérons deux routes à double sens qui se croisent comme dans la
figure ci-dessous.

Est-ce qu’il existe une situation d'interblocage ? Si oui donner les 4 conditions nécessaires
Exercice N° :03
Soient trois processus concurrents qui utilisent en exclusion mutuelle 6 ressources différentes
(de A à F). Ces trois processus exécutent respectivement les codes suivants :

Processus_1() Processus_2() Processus_3()


{ { {
while(1){ while(1){ while(1){
prendre (&D); prendre (&C); prendre(&A);
prendre (&E); prendre (&B); prendre (&B);
prendre (&C); prendre (&F); prendre (&E);
// Utilisation des ressources; // Utilisation des ressources; // Utilisation des ressources;
liberer(&D); liberer(&F); liberer(&E);
liberer(&E); liberer(&B); liberer(&B);
liberer(&C); liberer(&C); liberer(&A);
} } }
} } }

Ces processus concurrents peuvent-ils entrer en interblocage ? Expliquez à l’aide d’un graphe.
Si oui, peut-on l’éviter ? Justifiez brièvement.

Exercice N° :04
Donnez une solution au problème des cinq philosophes en utilisant les sémaphores sans risque
d’interblocage.

Exercice N° :05
Dans un système électronique de transfert de fonds, il existe des centaines de processus
identiques qui fonctionnent comme suit : Chaque processus lit une ligne de données qui
spécifie la quantité d’argent, le numéro de compte à créditer et le numéro de compte à débiter.
Il verrouille ensuite l’un après l’autre les deux comptes, transfère l’argent puis libère les
verrous.

1. Peut-on avoir des situations d’interblocage ? Justifiez votre réponse


2. Si vous répondez oui à la question précédente, proposez une solution qui permet de les
éviter. Attention : ne pas libérer l’enregistrement d’un compte avant que le transfert ne soit
terminé.
3. Peut-on les prévenir ? Si oui, expliquez brièvement comment ?

Exercice N° :06
Un système est composé de quatre processus P1, P2, P3, P4 et de trois types de ressources.
Initialement, le système est décrit par :
2 2 1
Available = (2, 5, 3) et Max = 0 3 0
1 2 3
0 1 2

1 2 1
0 1 0
Soit la situation Allocation = 0 0 1
0 1 1

1. La situation est-elle saine ? justifiez.


2. On suppose que le processus P1 émet la requête R1 = (1, 0, 0). La requête va-t-elle être
accordée de suite, ou bien va-t-elle être mise en attente ? justifiez.
Corrigé Les interblocages

Exercice N° :02

On observe que les quatre conditions d'interblocage sont bien remplies :


 Exclusion mutuelle : Seulement une voiture occupe un endroit particulier de la route
à un instant donné.
 Occupation et attente : Aucun voiture ne peut faire marche arrière.
 Pas de réquisition (préemption) : On ne permet pas à une voiture de pousser une
autre voiture en dehors de la route.
 Attente circulaire : Chaque coin de la rue contient des voitures dont le mouvement
dépend des voitures qui bloquent la prochaine intersection.

Exercice N° :03

1 détient D, E attend C
2 détient C attend B
3 détient A, B attend E
Oui, en utilisant l’algorithme du banquier

Exercice N° :04
Algorithme sans risque d’Interblocage, en niant condition 4 “attente circulaire”

==> Briser le cycle, en empêchant son apparition : en imposant un ordre d’acquisition des
fourchettes
Ex: Demander les fourchettes selon les numéros croissant et pour P4, demander d’abord la
fourchette F0
Repeat
Penser // sans fourchette !
If i <> 4 Then
Begin
Wait(Fourchettes[ i ])
Wait (Fourchettes[ (i + 1) mod 5 ]
EndIf
Else
Begin
Wait (Fourchettes[ 0 ])
Wait (Fourchettes[ 4 ]
EndIf
Manger avec fourchettes gauche et droite
Signal(Fourchettes[i])
Signal(Fourchettes[ (i + 1) mod 5 ]

Until false

Exercice N° :05

1. Oui. Par exemple, supposons deux processus P1 et P2.


P1 veut effectuer un transfert de c1 vers c2. Il a pu verrouiller c1 mais est en attente de c2. P2
veut effectuer un transfert de c2 vers c1. Il a pu verrouiller c2 mais est en attente de c1.

2. Il suffit de faire en sorte qu’il n’y est pas d’attente circulaire. Chaque processus doit
verrouiller le compte le plus petit avant le compte le plus grand.

3. Oui, on connaît les besoins de chaque processus. On peut donc utiliser l’algorithme du
banquier.

Vous aimerez peut-être aussi