26
Le mod` ele standard Les protocoles de communication Description des algorithmes Syst` emes r´ epartis Mod` ele standard et principes algorithmiques erard Padiou epartement Informatique et Math´ ematiques appliqu´ ees ENSEEIHT 8 octobre 2012 erard Padiou Syst` emes r´ epartis 1 / 27

Systèmes répartis - Modèle standard et principes

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Systèmes répartis - Modèle standard et principes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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