Professional Documents
Culture Documents
Plan
Introduction:
Dfinition, organisation, proprits,
2.
3.
2
Validation atomique
Groupes, diffusion, cohrence
Consensus, prise de dcision
dapplications
Besoins propres des applications
Intgration dapplications existantes initialement spares
dapplication
Intgration dobjets du monde rel (informatique omniprsente )
(service de base)
(infrastructure)
(applications)
10
11
Problmes fondamentaux
Comment dterminer des proprits globales partir dobservations
12
locales ?
Comment coordonner des oprations en labsence dhorloge commune ?
Comment partager des donnes en labsence de mmoire commune ?
Y a-t-il des problmes intrinsquement insolubles ?
Comment dfinir, et maintenir, la cohrence dinformations rparties ?
Comment garder un systme en fonctionnement malgr des dfaillances
partielles
Solutions fondamentales
Il faut dfinir des modles
Un modle est une reprsentation du monde rel
Un modle reprsente des lments rels par des lments abstraits
Un mme systme rel peut tre reprsent par des modles diffrents
selon le problme auquel on sintresse
selon le degr de dtail atteint
Tout modle a des limites
Il faut utiliser les modles
Pour observer et comprendre le comportement du systme rel
Pour prdire le comportement du systme rel dans certaines circonstances
Pour aider commander le systme rel (lui imposer un comportement particulier)
13
14
vnements)
Asynchronisme des communications
Sret et vivacit
On est souvent amen spcifier et vrifier des proprits
jamais
donnes
arriver
16
plus gnraux
Bornes sur les cots
Rsultats dimpossibilit
contraintes
Exemple : borne suprieure sur le traitement et/ou la dure de
transmission
17
Le modle asynchrone
Rception / Dlivrance
On suppose disponible un systme de communication permettant
19
Rception / Dlivrance
Bien distinguer la rception dun message de sa dlivrance son
destinataire
20
21
Relation de prcdence
Le problme :
1) Dfinir une relation globale de prcdence (donner un sens
loprateur prcde )
2) Dfinir un ordre entre deux vnements sur la seule base
dinformations locales
Solution : utiliser le principe de causalit : la cause prcde leffet.
La causalit
Dfinition [Lamport 78] :
e prcde causalement e' ( e e') si :
23
24
25
Problme de datation
Problme : construire un systme de datation des
26
Problme de datation
27
28
30
Observation valide
Temporairement, lever lhypothse dasynchronisme
temps de transmission born = & et supposer quon dispose
31
Observation valide
Au temps t, on dlivre tous les messages ayant des
32
33
Etat Global?
Pas de HR
Temps de propagation des messages nest pas born
Objectif: construire un systme dhorloges assurant une
34
35
Algorithme de Lamport
Initialisation :
HLi = 0
vnement local :
HLi = HLi + 1
36
Exemple
37
et i<j)
38
39
e" e' ?
Question insoluble. Il sagit dune proprit de vivacit (un
vnement va-t-il arriver ?)
Risque dun vnement ne soit pas dtect.
40
41
42
43
Horloges vectorielles
On cherche caractriser la dpendance causale, en construisant un
systme de datation H qui ait la proprit de validit forte :
e e H(e) < H(e')
Applications
observation, mise au point (attribution dune cause un effet)
communication causale, diffusion causale
contrle et maintien de la cohrence dinformations (Ex: la reprise
44
But
Dater les vnements
Identique aux horloges logiques
45
Exemple
47
HV et structure de treillis
48
Horloges vectorielles
49
Horloges vectorielles
Horloges matricielles
Synthse
Horloge logique ou scalaire
Rduite un nombre
Ce que Pi connat du systme (Hi)
Horloge vectorielle
Vecteur dhorloges scalaires
Ce que Pi connat de Pj (Hi[j])
Horloge matricielle
Matrice dhorloges
Ce que Pi connat de ce que Pj connat de Pk (Hi[j,k])
51
Horloges matricielles
Principe
Horloge matricielle/Site
nxn
Evnement ei de Pi
Dat par la valeur courante de HMi
Envoi de message
Estampill par Hmi
Smantique
Interprtation de HMi[j,k]
Nombre de messages de Pj vers Pk dont Pi a connaissance
52
Horloges matricielles
Evnement local Pi
HMi[i,i] = HMi[i,i] + 1
53
Horloges matricielles
Rception de (m,Em) par Pj
Dlivr que si tous les messages qui sont causalement
54
Exemple
55
Exercice dapplication
56
Exercice dapplication
57
Horloges matricielles
Applications
mise au point fine (exemple : noyau Chorus)
dlivrance causale des messages
gestion de bases de donnes dupliques
58
Horloges matricielles
Optimisations
les horloges matricielles sont coteuses ( O(n2) )
Diverses optimisations ont t proposes
partitionner le systme en sous-systmes (interaction
59
Plan
Introduction:
Dfinition, organisation, proprits,
2.
3.
60
Validation atomique
Groupes, diffusion, cohrence
Consensus, prise de dcision
Dfinition
Exclusion mutuelle
Contexte de plusieurs processus s'excutant en parallle
Accs une ressource partage par un seul processus la fois
Exclusion mutuelle en distribu
Accs une ressource partage distante par un seul processus la fois
Processus distribus
Requtes et gestion d'accs via des messages changs entre les processus
Ncessit de mettre en uvre des algorithmes grant ces changes de
messages pour assurer l'exclusion mutuelle
61
Rappel
Un processus est dans 3 tats possibles, par rapport l'accs la
ressource
section
Dedans : dans la section critique, utilise la ressource partage
Dehors : en dehors de la section et non demandeur d'y entrer
62
63
65
66
la ressource
S'il est dans l'tat dehors, il passe le jeton son voisin
Quand le processus quitte l'tat dedans, il passe le jeton son
voisin
67
Inconvnients
Ncessite des changes de messages (pour faire circuler le jeton) mme si aucun
site ne veut accder la ressource
Temps d'accs la ressource peut tre potentiellement long
Si le processus i+1 a le jeton et que le processus i veut accder la ressource et
est le seul vouloir y accder, il faut que le jeton fasse tout le tour de l'anneau
68
Jeton j [ 1 .. N ] : jeton [ j ] = 0
Un site donn possde le jeton au dpart
70
71
72
73
Permission individuelle
un processus peut donner sa permission plusieurs
autres la fois
la ressource : Ri = { 1, ... , N } { i }
74
Permission individuelle
Se base sur une horloge logique (Lamport) pour garantir le
75
Une horloge Hi
Une variable dernier qui contient la date de la dernire demande d'accs la
ressource
L'ensemble Ri
Un ensemble d'identificateurs de processus dont on attend une rponse :
attendu
Un ensemble d'identificateurs de processus dont on diffre le renvoi de
permission si on est plus prioritaire qu'eux : diffr
Initialisation
Hi = dernier = 0
diffr = , attendu = Ri
76
78
i,j [ 1..N ] : Ri Rj
Deux sous-ensembles de 2 processus diffrents ont obligatoirement au moins un
lment en commun (le ou les arbitres) Cela rend donc inutile le besoin de
demander la permission tous les processus, d'o les sous-ensembles Ri ne
contenant pas tous les processus
i : | Ri | = K
Pour une raison d'quit, les sous-ensembles ont la mme taille pour tous les
processus
80
Fonctionnement de l'algorithme
Chaque processus possde localement
Une variable vote permettant de savoir si le processus a dj vot (a
Initialisation
tat non demandeur, vote = faux et file = , rponses = 0
81
part
Si file est non vide
Retire le premier identificateur (disons k) de la file et envoie Pk
83
lection
Problme
Parmi un ensemble de processus, en choisir un et un
lection
Utilit
Rgnration dun jeton perdu : un jeton et un seul
85
lection
Bully algorithm
Hypothses
Rseau fiable et synchrone
Identit des processus connue par tous
Principe
Bas sur la recherche dun min dun ensemble
Demande dlection par inondation
Rponse ceux qui ont un numro infrieur
Processus lu sil ne reoit aucune rponse
86
87
88
if candidati:=false then
candidat i:=true;
envoyer_suivant(lection,i);
end;
89
Terminaison (1)
Modle de calcul rparti (rappel)
Ensemble de processus communiquant par messages ; tat actif ou passif
Programme (cyclique) de chaque processus :
loop
1. attendre un message (passage temporaire ltat passif)
2. excuter un calcul local en rponse ce message
3. le calcul peut comporter lenvoi de messages dautres processus
ou la terminaison du processus (passage dfinitif ltat passif)
end
Problme de la terminaison
Vrifier que le calcul est achev
Cela implique deux conditions sur ltat global du systme
Tous les processus sont au repos (passifs)
Aucun message nest en transit
En effet larrive dun message en transit peut relancer le calcul
90
Terminaison (2)
Mthodes pour dtecter la terminaison
91
92
(initialement blanc)
noir = a t actif depuis le dernier passage du jeton,
blanc = noir
Le jeton porte un compteur des sites trouvs passifs
Terminaison = tous les sites blancs aprs 1 tour
93
Lalgorithme de Misra
procdures dun site :
dbut dun traitement (rception de message)
tat := actif;
couleur := noir; /* couleur de lactivit dun site */
end;
94
rception du jeton(j)
if tat :=actif then /* site actif */
jeton_present :=true;
else
if j=N and couleur=blanc then /* site non actif */
terminaison_dtecte;
else
if couleur=blanc then
envoyer_jeton(j+1);
else
couleur:=blanc;
envoyer_jeton(1);
end;
end;
95
End;
97
Coupures
98
Coupures cohrentes
99
100
101
Partie2 :
Tolrance aux fautes
Introduction, techniques de base
Plan
Dfinition de base
Sret de fonctionnement
Dfaillances
Degr de gravit des dfaillances
Modle
Panne franche
Panne par omission
Panne de temporisation
Pannes arbitraires (ou byzantines)
tapes
Techniques
103
Dfinition de base
Service
Ensemble de fonctions dfini par une interface, contrat
entre le fournisseur et lutilisateur du service.
Proprit dun systme informatique permettant ses
utilisateurs de placer une confiance justifie dans le service
que dlivre le systme
104
dinterface)
validit (correctness) : le systme est conforme ses
105
Sret de fonctionnement
(dependability)
Fiabilit (reliability): le systme est en tat (continu) de rendre le
service
autres
106
Dfaillances
Dfinition
Un systme (ou composant) est sujet une dfaillance (failure)
Types de Pannes:
Panne franche
Panne par omission
Panne temporisation
Pannes arbitraires (ou byzantines)
108
Types de Pannes
Panne franche
Dit aussi : arrt sur dfaillance (fail stop)
ou bien le systme fonctionne, et
donne un rsultat correct
ou bien il est en panne (dfaillant), et
ne fait rien
Cest le cas le plus simple, et on essaie de sy
ramener (au besoin en forant larrt dun
composant ds quune erreur y a t dtecte
: technique fail fast)
Pannes de temporisation
Les dviations par rapport aux spcifications
concernent uniquement le temps (par
exemple temps de raction un
vnement)
109
Time To Failure)
Mesure de la disponibilit
Disponibilit instantane : Probabilit A(t) que le systme soit
service correct
Mesure : temps moyen de rparation : MTTR (Mean Time To Repair)
110
le dlai de latence
plus le dlai de latence est long, plus la recherche des causes dune
111
Par la vrification
Avant mise en route du systme : examiner les fautes restantes, et
liminer celles que lon peut liminer
112
113
Localisation
Identifier le point prcis (dans l'espace et le temps) o lerreur (ou
Isolation
Confiner lerreur pour viter sa propagation dautres parties du
systme
Rparation
Remettre du systme en tat de fournir un service correct
114