Vous êtes sur la page 1sur 2

UNIVERSITE A.

MIRA BEJAIA
FACULTE DES SCIENCES EXACTES
DEPARTEMENT INFORMATIQUE
L3RN RS
Décembre 2022
SYSTEMES DISTRIBUES
TD n°3

Exercice1 : Soit le problème d’EM dans un SD


1) Sur quoi est basé l’algorithme de Le Lann pour l’Exclusion Mutuelle ?
2) Soit un anneau à 8 sites (un processus par site) qui utilisent l’algorithme de LeLann pour
résoudre un problème de section critique (SC) et le jeton se trouvant sur P1 initialement (t=0s).

En supposant le temps de transmission du jeton sur une liaison direct est de 3s, le temps de
traitement de la SC est de 10s et le temps de traitement du jeton sur un site qui ne désire pas
entrer en SC est de 1s ; A quel moment le processus P1 peut entrer en SC s’il la demande à
l’instant 10s ?

Exercice2 : On considère un système réparti asynchrone composé de quatre sites reliés par des
canaux fifos. Les sites envoient des demandes d’entrer en section critique comme indiqué sur la
figure ci-dessous. Compléter et donner la suite du diagramme en indiquant lequel parmi les quatre
sites accéderait à la section critique le premier avec l’algorithme de Lamport .

Site1 Site2 Site3 Site4


h1=0 h2=0 h3=0 h4=0
req,?,1
req,?,4

req, ?,2 req,?,3


Exercice3 : Soit l’algorithme de Ricart et Agrawala suivant.
i) Expliquer le principe de cet algorithme (inclure le rôle et l’utilité de la variable acc[ ])
ii) Montrer qu’il vérifie l’exclusion mutuelle
iii) Donner le nombre de messages échangés pour chaque opération d’EM

Pour chaque Pi : Var h : 0..+ ;


hs : 0.. + ;
acc :tableau[1..n] de booleen ;
nbrepattendues :0..n-1;
sc: {desirée, dedans, dehors} ;
repdifféré: tableau[1..n] de booléen;

A la demande de la section critique: A la liberation de la section critique


sc=desirée ; sc=dehors ;
hi=hsi+1 ; pour j=1 à n, j≠i
nbrepattendues=n-1 ; si repdifféré[j] alors
pour j=1 à n, j≠i envoyer (req, hi, i) à j ; repdifféré[j]=faux
tant que (nbrepattendues≠0) attendre ; envoyer(rep) à j ;
sc=dedans fsi
fin fin

A la réception (suivant le message reçu ):


(req, k,j) : hsi=max(hsi, k) ;
si (sc=dedans) ou ((sc=desirée) et ((hi<k)ou(hi=k et i<j))) alors
repdifféré[j]=vraie ;
sinon envoyer(rep) à j ;
fsi
(rep,j) : nbrepattendues=nbrepattendues-1 ;
acc[j]=vrai
fin

-FIN-

Vous aimerez peut-être aussi