Syst`
emes et Algorithmes R´
epartis
Final de l’UV SR05 — Automne 2014 — vendredi 16 janvier 2015
Dur´
ee : 2h00. Aucun document autoris´
e.
Le bar`
eme est donn´
e`
a titre indicatif.
Toutes les r´
eponses doivent ˆ
etre argument´
ees. Les algorithmes fournis doivent imp´
erativement ˆ
etre pr´
ec´
ed´
es d’une
explication sur leur fonctionnement. Leur simplicit´
e sera appr´
eci´
ee.
Le soin apport´
e`
a la copie, la clart´
e et l’orthographe des explications seront pris en compte.
Probl`
eme 1 : (15 points)
On consid`
ere un syst`
eme r´
eparti Scompos´
e de N sites S1, . . . , SNreli´
es par un r´
eseau de topologie quelconque
mais fixe. Une fonction de routage (non d´
etaill´
ee ici) permet d’adresser un message depuis tout site Sivers tout autre
site Sjdans le r´
eseau.
Ce syst`
eme Sest le support d’une application r´
epartie Acompos´
ee d’une instance Aipar site Si. Certaines
instances sont actives d`
es le d´
epart. Lorsqu’une instance locale Aiest active, elle peut envoyer des messages `
a d’autres
instances Aj, ce qui les rend actives (si elles ne l’´
etaient pas d´
ej`
a). Une instance passive ne peut devenir active
spontan´
ement (sans r´
eception de message). Par contre une instance active peut devenir spontan´
ement passive (fin des
traitements locaux).
Pour d´
etecter la terminaison de l’application r´
epartie A, un protocole de contrˆ
ole Pest ins´
er´
e entre l’application
et le r´
eseau. Sur chaque site Si, l’instance locale Pide Pest en mesure de d´
eterminer si Aiest active et d’intercepter
les messages ´
emis ou rec¸us par Ai.
Question 1-1 : (1 point)
Expliquer pourquoi le syst`
eme Sinduit un anneau logique permettant de parcourir tous les sites succes-
sivement.
Question 1-2 : (2 points)
Proposer un algorithme utilisant cet anneau et des messages ne contenant qu’un entier pour ´
elire un site
parmi ceux qui sont actifs. On compl´
etera l’algorithme suivant. La fonction is active() retourne vrai si
l’instance locale de l’application Aiest active, faux sinon.
Algorithme 1 :Pi
Initialisation :
´
Elui+
Actifiis active()
Aidevient passif :
Actififaux
´
Elui== +et Actifi== vrai :
.
.
.
R´
eception d’un message de type “´
election” :
.
.
.
Question 1-3 : (2 points)
Compl´
eter l’algorithme pr´
ec´
edent afin que chaque instance Pidu protocole de contrˆ
ole g`
ere un tableau Vi
tel que Vi[k]repr´
esente le nombre de messages ´
emis par Aivers Aket Vi[i]repr´
esente l’oppos´
e du nom-
bre de messages rec¸us par Ai. Attention, le protocole Pdoit maintenant r´
ealiser une tˆ
ache dynamique.
On ajoutera les gardes suivantes `
a l’algorithme de Pi:
R´
eception d’un message de Aipour Aj:
.
.
.
R´
eception d’un message de Pjpour Pide type “appli” :
.
.
.
Question 1-4 : (2 points)
Compl´
eter l’algorithme pr´
ec´
edent en ajoutant un message de type “jeton”, qui part du site ´
elu lorsqu’il
est passif et progresse sur l’anneau en ´
etant retransmis par les sites passifs. Ce jeton contient un tableau
de Ncases ; `
a chaque fois que le jeton quitte un site Si, il collecte dans son tableau le contenu du tableau
Vi, qui est ensuite r´
einitialis´
e.
Question 1-5 : (2 points)
Compl´
eter l’algorithme pr´
ec´
edent avec une d´
etection de terminaison. Attention, le protocole Pdoit main-
tenant r´
ealiser une tˆ
ache statique.
Question 1-6 : (2 points)
Montrer que lorsque l’application r´
epartie est termin´
ee, le jeton revient avec un tableau nul sur un site qui
l’avait d´
ej`
a retransmis.
Question 1-7 : (2 points)
Montrer que lorsque le jeton avec un tableau nul sur un site qu’il avait d´
ej`
a visit´
e, alors l’application
r´
epartie est termin´
ee.
Question 1-8 : (2 points)
Compl´
eter le sch´
ema de la figure ci-dessous afin de rendre compte de l’ex´
ecution de l’algorithme de
d´
etection de terminaison. On donnera en particulier les valeurs successives des tableaux dans le jeton et
sur les sites.
Consignes : Le jeton est ´
emis au plus tˆ
ot, `
a date enti`
ere. Le site ´
elu est S1, qui ´
emet le jeton la premi`
ere
fois `
a la date 3. Le jeton met toujours une unit´
e de temps pour atteindre le site suivant sur l’anneau.
R´
epondre directement sur le sujet.
Par pr´
ecaution, ´
ecrire votre nom ici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1
S
2
S
3
S
S
4
29 30 31
activité de l’app. de base
message de l’app. de base
Probl`
eme 2 : Sauvegarde (5 points)
On d´
esire ajouter une fonctionnalit´
e de sauvegarde au sein d’une application r´
epartie s’ex´
ecutant sur un r´
eseau
fixe connexe FIFO.
R´
epondre directement sur le sujet.
Par pr´
ecaution, ´
ecrire votre nom ici :
Question 2-1 : (0,5 point)
Expliquer pourquoi la sauvegarde r´
epartie n´
ecessite un algorithme d’instantan´
e.
Question 2-2 : (1,5 point)
Compl´
eter l’algorithme suivant pour r´
ealiser un instantan´
e r´
eparti (snapshot).
Algorithme 2 :snapshot, site Si
Initialisation :
sauvegardei← ∅
D´
ebut de l’instantan´
e (sur un seul site) :
R´
eception d’un message de type marqueur :
Question 2-3 : (0,5 point)
Pourquoi l’algorithme pr´
ec´
edent n´
ecessite un r´
eseau FIFO ?
Question 2-4 : (0,5 point)
On d´
esire dater les sauvegardes. Pour cela, une horloge logique est utilis´
ee pour dater les actions du
syst`
eme. Quel type d’horloge utiliser ?
Question 2-5 : (1 point)
Pr´
eciser la relation d’ordre induite par l’horloge sur l’ensemble des actions du syst`
eme. Est-ce une relation
d’ordre partielle ou totale ?
Question 2-6 : (1 point)
Comment dater une sauvegarde r´
epartie `
a partir des dates des sauvegardes locales ?
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !