Vous êtes sur la page 1sur 3

Le 31/01/2023

UNIVERSITE Mohamed Khider BISKRA


1ère année Master. Département d’informatique
Matière : Systèmes distribués

Contrôle de rattrapage (Durée : 1h 30’)


Exercice n°1 : 6 points
Partie A :
a) Décrire le problème posé par les horloges de Lamport, puis expliquer comment les horloges vectorielles résolvent
ce problème.
b) Décrire le problème posé par les horloges vectorielles, puis expliquer comment les horloges matricielles résolvent
ce problème.
Partie B :
Considérons un système contenant 3 processus. Tous les processus possèdent des horloges logiques matricielles.
6 2 2
Supposons que l’horloge matricielle HM3 du processus 3 est HM3 = 1 6 1
1 2 7
1. A quoi correspond l’élément de l’horloge matricielle HM3 [3, 1], pour le processus 3 ? Même question pour les
éléments HM3 [1, 3], HM3 [2, 3] pour le processus 3.
Le processus 3 reçoit le message m en provenance du processus 1.

8 2 3
L’estampille du message m est EMm = 2 9 2
1 1 3

2. Que peut déduire le processus 3 par rapport aux éléments EMm [1, 3], EMm [2, 3] ?
3. Le processus 3 peut-il délivré le message m (délivrance causale) ? Justifier votre réponse.
Exercice n°2 : 10 points
Soit un système distribué de n sites connectés via une topologie du réseau quelconque (graphe) où les canaux de
communication sont fiables et synchrones. Chaque site possède un ID unique. Selon l’algorithme de BULLY, lorsqu’un
site Si détecte une panne d’un coordinateur, il initie l’algorithme d’élection en exécutant Initiateur (Si). Cet algorithme
va provoquer l’exécution de l’algorithme NonInitiatieur(Sj) par d’autres sites Sj. Les demandes d’élection sont diffusées
seulement aux sites dont l’ID est plus grand. Un site répond à ceux de numéros inférieurs au sien. Autrement, un site qui
ne reçoit aucune réponse constate qu’il est élu.
Soient les procédures suivantes :

Initialisation Lancement_élection par Si Reception_mgs(elected,Sj) par Si


Pour tout i faire Demande_Elect_ivrai; Demande_Elect_ifaux; Leader=Sj;
Demande_Elect_ifaux; Pour (tout j>i) faire
LeadermaxEntier; envoyer(Si,Election);
Elufaux; Armer délai de garde T; // (*)
1. Quels sont les types des messages échangés durant le déroulement de cet algorithme ?
2. A quoi sert l’instruction (*) dans la procédure Lancement_élection exécutée par le site Si ?
3. Quel est le comportement de Si lorsqu’il envoie un message (Si,Election)?
4. Le délai de garde T (*) influence-t-il ce comportement ? Expliquer.
5. Quelles sont les taches d’un NonInitiateur(Si)?
6. Ecrire les procédures suivantes :
a. Réception_msg(Sj,Election) par Si: elle décrit le comportement d’un site Si lorsqu’il reçoit un message de
type Election en prévenance de Sj.
b. Déclenchement_délai_T(Si) : elle décrit le comportement d’un site Si lorsque le délai de garde T (*) est écoulé.
7. Quelle est la complexité de l’algorithme de BULLY au pire des cas où le site de plus petit identificateur lance
l’élection ? Justifier en précisant les types des messages échangés.
8. Comparer les deux algorithmes d’élection de Bully et de Chang et Robert en termes de complexité au pire des cas.
Questions : 4 points
1. Donner les différents types d’interblocage dans un système réparti. Comment peut-on caractériser chaque type ?
Expliquer sur un exemple.
2. Quelles sont les différences entre les techniques de détection et guérison et les techniques préventives pour résoudre
les interblocages.
UNIVERSITE Mohamed Khider BISKRA
1ère année Master. Département d’informatique
Matière : Systèmes distribués

Corrigé du Contrôle de rattrapage (Durée : 1h 30’)


Exercice 1

Partie A (1+1 pt)

Partie B (1.5+1.5+1pt)

Exercice 2

1. Election, ACK, Elected. (0.75 point)


2. Estimation du temps max de réponse. (0.75 point)
3. Le site Si attend un ACK pendant T. (0.75 point)
4. Si le site Si reçoit un ACK avant T, il attend un message de type (elected,Sj) pendant T1. Sinon, il
s’autoproclame Leader et envoie (elected,Si). (1 point)
5. NonInitiateur(Si) (0.5 + 0.5 + 0.5 )
a. Le site Si reçoit un message (Sj,Election) alors forcément (i>j),
b. Le site Si envoie un ACK à Sj,
c. Le site Si exécute Initiateur(Si)=il lance l’élection.
6. Procédures (1.5 + 1.5)
Réception_msg(Sj,Election) par Si Déclenchement_délai_T(Si)
si (non Demande_Elect_i) alors Si (aucun msg ack reçu) alors Eluvrai;
Demande_Elect_ivrai; Pour tout j faire (elected,Sj) // pi est leader
envoyer(Si,ack); // Si envoie ack à Sj car i>j// sinon armer délai garde T1 //attendre la fin de l’élection
Pour tout k>i faire envoyer(Si,Election); // Si lance // T1 estime le temps max de l’élection
l’élection Déclenchement_délai_T1(Si)
Armer délai de garde T Si (aucun msg elected reçu) alors Lancement_élection par Si;

7. Complexité (1.5 point)


S1n-1 msg
S2n-2 msg
S3n-3 msg

Sn-11 msg
 n(n-1)/2 msg
De plus, le leader doit envoyer un msg de notification à tous les sites  (n-1) msg supplémentaires.
D’où une complexité de 0(n2)
8. Au pire des cas, les deux algorithmes ont la même complexité 0(n2). (0.75 point)
Questions : (2+2) points
1. Les différents types d’interblocage dans un système réparti :
a. Modèle basé sur l’allocation de ressources
b. Modèle basé sur la communication de messages
Caractérisation :
a. 1er type : Un processus local sur chaque site Sj, le contrôleur Cj , ordonnance les processus, gère les
ressources, et met en œuvre les émissions/réceptions de messages.
b. 2ème type : Les requêtes d’allocation et libération de ressources peuvent être implémentées par des
échanges de messages. L’interblocage peut se produire dans un ensemble de processus communicants à
cause des échanges de messages.
Expliquer sur un exemple.

2. Les différences entre les techniques de détection et guérison et les techniques préventives pour résoudre les
interblocages :
a. Prévention : contraintes sur la manière de demander l’accès aux ressources :
Schéma 1 : réservations de toutes les ressources avant de commencer
Schéma 2 : relâchement de toutes les ressources avant d’accéder à de nouvelles
Schéma 3 : ordonnancement des ressources et accès dans leur ordre
b. Évitement :
Contrôle pas à pas de la progression des processus
Mise en œuvre d’une possibilité d’échapper à un interblocage
Dépendant des algorithmes des utilisateurs ⇒ non étudié ici
c. Détection puis résolution :
Interblocage est une propriété stable ⇒ algorithme de détection
Non-interférence : ne pas influencer l’exécution de l’algorithme de l’utilisateur
Vivacité (en anglais, liveness) : si interblocage, le détecter en un temps fini
Correction (en anglais, safety) : détecter un interblocage seulement lorsqu’il en existe un
Résolution : dépendant des algorithmes des utilisateurs

Vous aimerez peut-être aussi