systèmes répartis - modèle standard et principes
TRANSCRIPT
![Page 1: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/1.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Systemes repartisModele standard et principes algorithmiques
Gerard Padiou
Departement Informatique et Mathematiques appliqueesENSEEIHT
8 octobre 2012
Gerard Padiou Systemes repartis 1 / 27
![Page 2: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/2.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Plan
1 Le modele standardApproche evenementielleCausaliteAbstraction d’un calcul
2 Les protocoles de communicationProtocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
3 Description des algorithmesDescription du comportement des processusAlgorithme d’electionArbre de recouvrement
Gerard Padiou Systemes repartis 3 / 27
![Page 3: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/3.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Vision statique : Graphe de processus
Description graphique
Sommets ≡ processus
Arcs ≡ liaisons de communication
c5
P1
P2
P3 P4
c1
c2c3
c4
Gerard Padiou Systemes repartis 4 / 27
![Page 4: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/4.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Proprietes
Proprietes des processus
Un processus possede une identite unique ;
Un processus possede un etat remanent ;
Un processus execute un code sequentiellement ;
Un processus n’a qu’une connaissance partielle des autres ;
Un processus peut communiquer avec un voisinage.
Pas de panne (par arret ou comportement byzantin).
Proprietes du reseau
Multiples parametres : point a point ou diffusion,(a)synchrone, fiable, delais bornes, etc
Messages : ni duplication ni erreur ;
Gerard Padiou Systemes repartis 5 / 27
![Page 5: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/5.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Connaissances d’un processus
Environnement
Processus
Nombre de processus ?
Voisinage de communication ?
Structure du reseau : maille, anneau, statique/dynamique, etc
Gerard Padiou Systemes repartis 6 / 27
![Page 6: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/6.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Vision dynamique : Chronogramme
Representation evenementielle
3 types d’evenements : emission, reception, interne ;
Mise en evidence de la causalite.
0
e1 r2 e3 e4
i1
e2r1
e’
t
P1
P2
P3
P4
Gerard Padiou Systemes repartis 7 / 27
![Page 7: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/7.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Definition de la relation de causalite (Lamport & Fidge)
Traduit l’ordre partiel entre evenements
L’emission d’un message precede causalement sa reception ;
Tous les evenements d’un processus sont totalement ordonnes ;
Transitivite : ∀e, e ′, e ′′ : e ≺ e ′ ≺ e ′′ ⇒ e ≺ e ′′
Exemple
m1
a1 a2 a3 a4 a5
b1
b2
b3 b4
A
B
Cc2 c3c1
m3
m4
c4
m5
m2
a1 ≺ a2 ≺ . . . mais aussi a1 ≺ c1, c2 ≺ a4, b4,≺ c4
Gerard Padiou Systemes repartis 8 / 27
![Page 8: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/8.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Approche evenementielleCausaliteAbstraction d’un calcul
Abstraction d’un calcul reparti
Executions causalement equivalentes
m1
a1 a2 a3 a4 a5
b1
b2
b3 b4
A
B
Cc2 c3c1
m3
m4
c4
m5
m2
Ensemble d’evenements + relation causale → ensembled’executions reelles equivalentes ;
a1; b1; c1; a2; . . . ≡ a1; a2; c1; b1; . . .a1; c1; a2; . . . 6≡ c1; a1; a2; . . . car a1 ≺ c1
Le choix des evenements fixe un niveau d’observation.
Gerard Padiou Systemes repartis 9 / 27
![Page 9: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/9.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Plan
1 Le modele standardApproche evenementielleCausaliteAbstraction d’un calcul
2 Les protocoles de communicationProtocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
3 Description des algorithmesDescription du comportement des processusAlgorithme d’electionArbre de recouvrement
Gerard Padiou Systemes repartis 10 / 27
![Page 10: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/10.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Protocole causalement ordonne
Objectif : Mettre de l’ordre . . .
Receptions incoherentes par rapport aux emissions
t0
P3
P2
P1e1 e
re2
r2 r1
m
m1 m2
r2 ≺ r1 alors que e1 ≺ e2
+ notion de delivrance 6= reception ;
Gerard Padiou Systemes repartis 11 / 27
![Page 11: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/11.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Protocole de diffusion
Beaucoup d’imprevus . . .
Diffusion vers un groupe de destinataires
m2
0
P3
P2
P1
t
m1
m3
Gerard Padiou Systemes repartis 12 / 27
![Page 12: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/12.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Diffusion anarchique
Diffusion vers le groupe G = {S1,S2,S3}
Groupe de processus destinataires d’une requete {S1,S2,S3}Replication des requetes des clients Cl1 et Cl2
d’un groupe
S3
S2
S1
Cl2
Cl1
Frontière
Gerard Padiou Systemes repartis 13 / 27
![Page 13: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/13.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Diffusion virtuellement synchrone
Meme ordre de consommation des messages
Atomicite des diffusions ;
Reconfiguration coherente.
Cl1
S3
S2
S1
Cl2
Gerard Padiou Systemes repartis 14 / 27
![Page 14: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/14.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Notion de vague : iteration repartieMichel Raynal
Operations sur une vague
class Vague {
Enqueter (Object Quoi ) ;
/* lance une nouvelle vague */
Visiter (Object Quoi, Collecte) ;
/* passage d’une vague sur un site */
Faire_Suivre(Object Quoi, Collecte) ;
/* propagation de la vague par un site */
Collecte Collecter() ;
/* collecte des resultats et fin de la vague */
}
Gerard Padiou Systemes repartis 15 / 27
![Page 15: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/15.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Protocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
Notion de vague : iteration repartie
Observateur
S1
S2
S3
S4
Enquêteri Enquêter(i+1)Collecteri Collecter(i+1)
Faire_suivrei Faire_suivre(i+1)
Visiter(i+1)
Visiteri
Visiteri
Visiter(i+1)
vaguei vague(i+1)
Gerard Padiou Systemes repartis 16 / 27
![Page 16: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/16.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Plan
1 Le modele standardApproche evenementielleCausaliteAbstraction d’un calcul
2 Les protocoles de communicationProtocole causalement ordonneProtocoles de diffusionSynchronisme virtuelStructure de controle repartie
3 Description des algorithmesDescription du comportement des processusAlgorithme d’electionArbre de recouvrement
Gerard Padiou Systemes repartis 17 / 27
![Page 17: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/17.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Principes algorithmiques
Algorithmes symetriques
code replique,donnees initiales propres : identite, voisinage decommunication.
Structurer les echanges de messages :
Utilisation de reseaux en anneau ;Utilisation de la structure d’arbre.
Etudier des problemes generiques :
Les services : datation, exclusion mutuelle, consensus, election,etc ;Les observations de proprietes stables : terminaison,interblocage ;La tolerance aux fautes : replication, atomicite.
Gerard Padiou Systemes repartis 18 / 27
![Page 18: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/18.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Description des algorithmesPrincipe des commandes gardees (E.W. Dijkstra)
process P(i :0..N-1) {
type Etat = { <Definition des etats possibles> } ;
Etat EtatCourant= Init ;
<Declaration de variables locales>
<Action d’initialisation>
while (<Condition>) {
select {
[when <Condition-1> ⇒] {[receive M-1(<params-1>) ;] <Action-1>}
[]...
[][when <Condition-p> ⇒] {[receive M-p(<params-p>) ;] <Action-M>}
} // select
} // while
}
Choix d’une action : garde vraie et message a consommer le plus ancien
Pour un envoi : send M(<args>) to <destinataire(s)>
Gerard Padiou Systemes repartis 19 / 27
![Page 19: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/19.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Election
Le probleme de l’election
Objectif : Elire un seul processus
bachmozart
grieg
berlioz
vivaldiverdi
Un processus a une identite unique qu’il connaıt ;
Un processus ne connaıt pas le nombre global de processus ;
Un processus ne connaıt pas l’identite des autres ;
Communication sur un anneau.
Gerard Padiou Systemes repartis 20 / 27
![Page 20: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/20.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Solution correcte ou fausse ?
+ On suppose que les processus sont totalement ordonnes (ici parleur indice, en pratique, par leur adresse IP par exemple)
process P(i :0..N-1) {
// et ⊕ : operateurs modulo Ntype Etat = {candidat,elu} ;
Etat EtatCourant=candidat ;
int qui ;
while (EtatCourant == candidat) {
receive Candidat(qui) from P[i1] ;if(qui < i) send Candidat(qui) to P[i⊕1];else if(qui == i) EtatCourant = elu;
}
}
Gerard Padiou Systemes repartis 21 / 27
![Page 21: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/21.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Solution qui conduit a l’election (du + petit)
process P(i :0..N-1) {
type Etat = {candidat,elu} ;
Etat EtatCourant=candidat ;
int qui;
send Candidat(i) to P[i⊕1] ; /* chacun candidate */
while (EtatCourant == candidat) {
receive Candidat(qui) from P[i1] ;if(qui < i) send Candidat(qui) to P[i⊕1];else if(qui == i) EtatCourant = elu;
}
Pas parfait : un seul processus se termine . . .
Gerard Padiou Systemes repartis 22 / 27
![Page 22: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/22.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Solution plus complete (tous les processus s’arretent)
process P(i :0..N-1) {
type Etat = {candidat,elu,perdant} ;
Etat EtatCourant=candidat ;
int qui ; int gagnant ;
send Candidat(i) to P[i⊕1]; /* chacun candidate */
while (EtatCourant == candidat) {
select {
receive Candidat(qui) from P[i1] ;if(qui < i) send Candidat(qui) to P[i⊕1];else if(qui == i) EtatCourant = elu;
[]receive Elu(gagnant) from P[i1] ;EtatCourant=perdant; send Elu(gagnant) to P[i⊕1];} // select
} // textitwhile
if (EtatCourant==elu) {
send Elu(i) to P[i⊕1]; receive Elu(gagnant) from P[i1] ;}
}
Gerard Padiou Systemes repartis 23 / 27
![Page 23: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/23.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Construction d’un arbre de recouvrement
Objectif : structurer la communication grace a la notion d’arbre
Un processus connaıt ses voisins ;
Un processus decide de construire un arbre dont il est racine ;
Les autres processus participent a la construction≡ « se placent dans l’arbre »
Gerard Padiou Systemes repartis 24 / 27
![Page 24: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/24.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Parcours en profondeur (sequentiel)
S1S3
S2
S4
S5
S6
S1
S2
S3
S4
S5
S61
1 4 4
663
null3
32
null
3
352
3 6null
64
Gerard Padiou Systemes repartis 25 / 27
![Page 25: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/25.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Parcours en largeur (en parallele)
S1S3
S2
S4
S5
S6
S1
S2S3S4
S5S61
1 4 4
1
1
3
41
132
33null
6
5
null
Gerard Padiou Systemes repartis 26 / 27
![Page 26: Systèmes répartis - Modèle standard et principes](https://reader030.vdocuments.us/reader030/viewer/2022012607/619b2ec823530a7f301f7f75/html5/thumbnails/26.jpg)
Le modele standardLes protocoles de communication
Description des algorithmes
Description du comportement des processusAlgorithme d’electionArbre de recouvrement
Construction d’un arbre de recouvrementEt si l’on utilisait l’appel procedural a distance . . .
public class Noeud {
private Noeud pere = null ;
public List <Noeud> voisins ;
private List<Noeud> fils = new ArrayList<Noeud>();
// Place le noeud this et propage le calcul
public Noeud parcourir ( Noeud appelant ) {
if (pere != null) return null ; // Deja place
pere = appelant; // Placement
for (Noeud v : voisins) { // Recherche des fils
if (v.parcourir (this) == v) fils.add(v);
}
return this ;
}
}Gerard Padiou Systemes repartis 27 / 27