Problèmes du chapitre 3 « Modélisation d`un système réparti »

9
Problèmes du chapitre 3 « Modélisation d’un système réparti »
Les deux premiers problèmes portent sur les relations entre invariants et propriétés de sûreté.
Le problème 7 illustre le lien entre topologie et complexité. Le problème 8 permet de comprendre
l’importance des hypothèses d’atomicité et de synchronisation dans un système réparti. Enn, le
problème 9 introduit quelques techniques de preuves.
Problème 5 :
Question 5.1 :
Montrer que si Pest un invariant, alors Pest un invariant restreint.
Question 5.2 :
Exhiber un système de transitions quelconque (sans se préoccuper d’un contexte réel)
dans lequel la réciproque est fausse en général. On explicitera les congurations initiales,
terminales, et atteignables de ce système, et on dénira l’ensemble des exécutions.
Problème 6 :
Question 6.1 :
Montrer par l’absurde qu’un invariant restreint dénit une propriété de sûreté.
Question 6.2 :
Montrer par l’absurde qu’une propriété de sûreté dénit un invariant restreint.
Question 6.3 :
Pourquoi le raisonnement précédent n’est pas correct avec un invariant ?
Problème 7 : Jules-César ordonne aux messagers de ne voyager que la nuit, et aux centurions
de ne travailler que le jour. Il dispose de ncamps retranchés placés de telle sorte que si deux d’entre
eux sont reliés par une voie romaine, alors il faut moins d’une nuit à un messager pour aller de l’un à
l’autre. Jules César se trouve dans l’un des camps.
Question 7.1 :
Comment qualier le système réparti que constitue l’armée de Jules-César ?
Question 7.2 :
Jules César envoie un ordre aux centurions via des messagers en quantité sufsante, mais
sans connaître la topologie du réseau. Quel est le délai d’attente minimal et maximal
pour que son ordre atteigne tous les camps ? Quelle propriété remarquable la topologie
du réseau de voies romaines doit admettre pour que la borne minimale soit atteinte ?
Question 7.3 :
Jules César utilise maintenant un unique messager pour diffuser son ordre, et il demande
à ce messager de revenir l’avertir lorsque tous les camps ont été visités. Que devient le
délai d’attente minimum ? Quelle propriété remarquable la topologie du réseau de voies
romaines doit admettre pour que cette borne soit atteinte ?
[email protected] 2012 TD. Merci de signaler les erreurs.
10
Question 7.4 :
Jules César organise maintenant ses camps en une grille G(V,E)avec V={1, . . . , p}×
{1, . . . , q}et E={((i, j),(i+ 1, j)) ,1i < p, 1jq}{((i, j),(i, j + 1)) ,1
ip, 1j < q}. Construisez un chemin optimal pour le messager de Jules-César. A
quel endroit doit se situer le camp de Jules-César ?
Question 7.5 :
Dans une grille de p×qsommets, quel est le nombre minimal d’étapes (en fonction de
pet q) ?
Question 7.6 :
Jules César change de stratégie et organise son armée en un arbre binaire complet ; son
camp étant à la racine de l’arbre. Quel est le temps minimum de diffusion de l’ordre avec
un nombre de messagers quelconque (sans qu’ils reviennent au camp de Jules-César à la
n) ? Combien faut-il de messagers pour atteindre cette borne ? Exprimer les résultats en
fonction du nombre nde camps.
Question 7.7 :
Jules-César utilise maintenant un seul messager pour diffuser son ordre dans l’arbre bi-
naire complet. Il ne lui demande pas de revenir le voir lorsque tous les camps ont été
visité. Combien faut-il d’étapes pour que le messager prévienne tous les camps ?
Problème 8 : On considère un système réparti composé de deux processus P1et P2, communi-
quant via deux registres R1et R2: le processus P1écrit dans le registre R1et lit dans le registre R2
tandis que le processus P2écrit dans le registre R2et lit dans le registre R1(gure 3.2). Les registres
peuvent prendre deux états possibles : 0ou 1.
R1
R2
P1
P2
FIGURE 3.2 – Système du problème 8.
Le code des processus est donné par l’algorithme suivant :
Algorithme 2 :Algorithme pour le processus Pi
1 Initialisation :
2xi0ou 1
3 Vrai :
4xilire(R3i))
5 écrire(Ri,xi)
[email protected] 2012 TD. Merci de signaler les erreurs.
11
Question 8.1 :
Décrire l’ensemble des congurations.
Question 8.2 :
Soit I={0000,1001,0110}l’ensemble des congurations initiales donnée sous le for-
mat x1R1, x2, R2. Donner les exécutions de EIdans le cas d’un démon synchrone. Le
système atteint-il une conguration terminale ?
Question 8.3 :
Donner les exécutions pour le démon réparti en partant de la conguration initiale 0000
(i.e.,E0000). On représentera ces exécutions sous la forme d’un graphe orienté, dont les
sommets sont les congurations, et dont les arcs représentent les transitions entre ces
congurations (automate). Étiqueter les arcs avec le ou les processus responsables de la
transition.
Question 8.4 :
Même question que précédement avec le démon lecture/écriture, et en partant de la con-
guration initiale 0000. Étiqueter les arcs avec les actions responsables de la transition.
Quelles sont les congurations non atteignables ?
Problème 9 : On considère un système réparti anonyme composé de Nsites Sireliés selon un
anneau orienté symétrique, dont l’un des sites est distingué par le fait qu’il possède un jeton. Les sites
communiquent par registres ; ils ne peuvent reconnaître les émetteurs des messages qu’ils reçoivent
(cf. gure 3.3). On s’intéresse au parcours de l’anneau par un unique jeton.
FIGURE 3.3 – Anneau (problème 9).
Question 9.1 :
Expliquer pourquoi le parcours de l’anneau par un jeton n’est pas immédiat.
Question 9.2 :
On suppose que les sites nomment localement leurs voisins par prediet succi. On étudie
l’algorithme consistant à envoyer le jeton à succi, puis à inverser la valeur de prediet
succi. Écrire le code de l’algorithme avec trois actions gardées, de gardes «Initialisation»,
«Jeton_présent» et «Réception jeton».
Question 9.3 :
Simuler l’algorithme sur un anneau à 6 sommets (cf. gure 3.3), après avoir donné :
(i) la même orientation aux sites, puis
(ii) des orientations quelconques (via les variables pred et succ).
Que constate-t-on ?
Question 9.4 :
L’algorithme est-il uniforme ? Quelle est la complexité mémoire de l’algorithme ? Peut-
elle être inférieure en écrivant l’algorithme différemment ? Quelle serait alors la com-
plexité minimale ?
[email protected] 2012 TD. Merci de signaler les erreurs.
12
Question 9.5 :
Quelles sont les informations contenues dans une conguration ?
On utilise l’orientation du site distingué (i.e., qui possède le jeton initialement) comme repère : le
sens droit est déni par l’orientation de pred vers succ sur le site distingué à l’initialisation. Le sens
gauche est déni comme le sens inverse du sens droit.
On numérote les sites en donnant le numéro 0au site distingué dans la conguration initiale, et
en parcourant l’anneau selon le sens droit déni précédemment.
Dans une conguration, un site ayant le sens droit sera noté det un site ayant le sens gauche sera
noté g. La présence du jeton entre deux sites sera noté _, tandis que la présence du jeton sur un site
sera noté dou gselon le sens du site.
Question 9.6 :
Donner la séquence de congurations de la simulation de la question 9.3(ii).
On note ckla kième conguration dans laquelle le jeton revient sur le site S0.
Question 9.7 :
Montrer par l’absurde que pour toute conguration ck, il existe une conguration attei-
gnable ck+1.
Question 9.8 :
Montrer que le site S0est dans le sens droit dans les congurations c2ket dans le sens
gauche dans les congurations c2k+1 pour tout entier k.
On note Cd={c2k, k N}l’ensemble des congurations c2kd’une exécution. On dénit la
projection pde l’ensemble Cdvers Ntel que les sites S0,S1,...,Sp(c2k)1aient tous le sens droit, et
le site Sp(c2k)ait le sens gauche.
Question 9.9 :
Donner les valeurs successives de la projection pdans la simulation de la question 9.3(ii).
Question 9.10 :
Montrer que tant que tous les sites n’ont pas été visité, alors p(c2k)< p(c2k+2).
Question 9.11 :
En utilisant les questions précédentes, montrer la propriété de vivacité suivante : « dans
toute exécution, le jeton nit par parcourir tous les sites ».
[email protected] 2012 TD. Merci de signaler les erreurs.
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 !