Vous êtes sur la page 1sur 7

Systèmes Distribués et Réseaux, M1 SICLE, 2016

Algorithmes Bernard Pottier


Université de Brest

distribués
http://wsn.univ-brest.fr/
pottier

1
Protocoles en Occam
Protocole Ecrire
PROTOCOL diam.proto PAR i=0 FOR N
CASE out[i] ! int ; tabOut[ i]
tab ; TableIdVal
null ; BYTE
int; INT Lire
: PAR i=0 FOR N
in [i] ? CASE
Déclarer : int ; tabIn[i]
PROC Node([N] CHAN OF diam.proto in,out) SKIP
[N] INT tabInt,tabOut: null ; isNull
BYTE isNull: SKIP
SEQ
SEQ i=0 FOR N
tabOut [i] := i
--
2
Protocoles en Occam

Application (travaux pratiques)

Multiplexer des valeurs nulles que l’on écarte et des


valeurs entières que l’on garde

3
Maximum distribué, réseau quelconque
Principe:
❖ chaque nœud a une variable locale MaxLoc et un avis sur
le maximum global MxGlobal (initialement MaxLoc)
❖ On exécute Nb tours, en plaçant MxGlobal dans les
tampons sortants
❖ Après les communications, on compare MxGlobal aux
valeurs entrantes. On met à jour si une entrée est plus
grande.

Application:
En MaxNodes -1 étapes, tout le monde connait le
maximum global

4
Réseau R1, max distribué
Rejouez l’algorithme MxGlob2
en figurant les progrès
des MxGlob_i : C0, C1, … P2, id 7

MxGlob3

P1, id 3 P3, id 9

MxGlob1

MxGlob4

P4, id 5

5
Leader sur un anneau

6
Leader sur un réseau quelconque
Principe:
❖ La valeur choisie est l’Identificateur (Id)
❖ On calcule le maximum des Ids
❖ C’est le leader sur le réseau
Application:

Si le réseau est non-connexe, alors il y aura


plusieurs leaders