Académique Documents
Professionnel Documents
Culture Documents
REPARTIS
CONCEPTS ET
ALGORITHMIQUE
Prof. Yahya SLIMANI
Département des Sciences de l’Informatique
Faculté des Sciences de Tunis
Tél: 98537921
E-mail: yahya.slimani@fst.rnu.tn
1
Présentation du
module
Objectifs
Introduire les systèmes répartis ou
distribués
Concepts
Problématique
Développement d’applications réparties
Prérequis
Architecture, OS, Programmation,
Réseaux
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 2
Introduction
Générale
3
Introduction (1)
Informatique classique
Centralisation
Des moyens de calcul
Des moyens de stockage
Du contrôle
Du calcul
Des données
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 4
Introduction (2)
Informatique parallèle
Motivations
Calcul intensif
Applications scientifiques
Gestion de grandes masses de données
Solution
Augmenter la puissance de calcul
Augmenter le nombre de processeurs
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 5
Introduction (3)
Informatique répartie
Réalité
Développement des réseaux
Intégration d’applications séparées
Pénétration de l’informatique dans tous
les domaines
Solution
Répartition des ressources et du contrôle
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 6
Introduction (4)
Informatique mobile
Motivations
Utilisateurs nomades
Moyens de traitement légers
Informatique intégrée aux objets du
monde réel
Téléphone, carte à puce, …
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 7
Introduction (5)
Informatique pervasive
Motivations
Accès à l’information
A tout moment
De n’importe où
Avec n’importe quel composant électronique
Accès à des services au moyen de
différents médias
Informatique ubiquitaire, diffuse
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 8
Systèmes répartis (1)
Présentation
Idée centrale
Répartition
Des moyens de calcul
Des moyens de stockage
Des données
Du calcul
Du contrôle
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 9
Systèmes répartis (2)
Définition
Ensemble d’éléments reliés par un réseau
Eléments de calcul
Eléments de stockage
Equipements spécifiques
Sondes, capteurs, satellites, etc.
Fonctionnement collaboratif
Participation à la réalisation de tâches communes
Collaboration grâce au réseau
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 10
Systèmes répartis (3)
Exigences
Fonctionnement continu
Tolérer la défaillance d’éléments
Fonctionnement dégradé
Résister au réseau
Défaillances du système de
communication
Perte de messages, déconnexion, …
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 11
Systèmes répartis (3)
Flexible
Adaptation aux changements
Passage à l’échelle (Scalability)
Dispersion géographique
Changements de taille
Eléments
Utilisateurs
…
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 12
Systèmes répartis (4)
Non vulnérable
La répartition ne doit pas dégrader la
sécurité
Fiabilité
Rendre des services conformes à leurs
spécifications
Facile à utiliser
Cacher la répartition à l’utilisateur
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 13
Systèmes répartis (5)
Problématiques
Très nombreuses et très diverses
Absence d’état global du système
Forte dynamicité
Administration du système très
complexe
Influence du réseau sur le système
Asynchronisme lié à la communication
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 14
Schéma d’un système réparti
Source : S. Krakowiak
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 15
Systèmes répartis (6)
Problématiques de base
Comment définir l’état d’un système
Existence d’états locaux uniquement
Comment définir un calcul dans le cas
réparti
Lancement
Suivi de l’exécution
Terminaison
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 16
Systèmes répartis (7)
Comment coordonner différents
calculs
Absence de référentiel temporel
commun
Comment partager des données
Absence de référentiel spatial commun
Comment garantir la cohérence de
données réparties
Cas d’une base de donnée répartie
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 17
Systèmes répartis (8)
Comment assurer le fonctionnement
continu du système
Tolérer (accepter des défaillances)
Comment développer et mettre au
point des applications réparties
Comment tolérer les aléas du réseau
de communication
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 18
ORDONNANCEMENT DES
EVENEMENTS
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 19
Ordonnancement (1)
Problématique
Pourquoi ordonner
Système = { Evénements }
Un événement nécessite une réaction
Que faire si plusieurs événements
arrivent en même temps
Trouver un ordre pour les traiter
Décision dépend de cet ordre
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 20
Ordonnancement (2)
Nécessité de connaître l’état d’un
système
Suivre l’évolution du système
Ressources
Processus
Coordonner des processus
Définir des propriétés
Système, processus, ressources, etc.
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 21
Ordonnancement (3)
Cas centralisé
Pas de complexité particulière
Possibilité de connaître l’état d’un
système à tout instant
Interruption
Prendre une image du système
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 22
Ordonnancement (4)
Pourquoi
Existence de deux référentiels uniques
Mémoire commune
Support de l’état du système
Horloge commune
Définit l’ordre des événements
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 23
Ordonnancement (5)
Cas distribué
Plus complexe
Pas de référentiels communs
Temporel
Spatial
Communications asynchrones
Temps de communication non borné
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 24
Ordonnancement (6)
Calcul asynchrone
Différentes de vitesses entre sites
Temps non borné
Charges variables entre sites
Observation différente du même
événement
Solution
Trouver un modèle temporel
Modèle asynchrone
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 25
Modèle asynchrone
(1)
Hypothèse de base
Asynchronisme
Du calcul
Des communications
Modèle
Asynchrone
Imposer des contraintes (parfois fortes)
Fixer des bornes
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 26
Evénements (1)
Types
2 types d’événements
Locaux
Internes à un processus
Ordonnés par l’horloge physique
Communication
Emetteur (Send)
Récepteur (Receive)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 27
Evénements (2)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 28
Evénements (3)
Hypothèses sur les messages
Message
Seul moyen de communication entre
processus distants
Propriétés
Arrivée d’un message
Garantie
Sans possibilité de borner le temps de
transmission
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 29
Evénements (4)
Contenu
Message non modifié
Canal de communication
Lien entre deux processus
Peut avoir certaines propriétés
FIFO
…
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 30
Evénements (5)
Instants
Réception
Par le système de communication
Délivrance
Remis à son destinataire
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 31
Evénements (6)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 32
Evénements (7)
Exécution locale
Suite d’événements
Propre à chaque processus
Constitue son passé ou son historique
Suite ordonnée
Horloge physique du site où se trouve le
processus
P1: < e11, e12, …, e1n >
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 33
Evénements (8)
Exécution globale
Définir une suite à partir de deux suites
d’événements
Intérêt
Synchroniser deux processus
Trouver un ordre entre les événements des deux
suites
Exemple: Accès à une ressource critique
Définir un ordre d’accès: Fin(P1) < Début(P2) ou
Fin(P2) < Début(P1)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 34
Evénements (9)
Ordonnancement global
Problématique
Comment définir la suite des événements
d’un système réparti
Passage d’un ensemble de suites locales à une
suite globale
Relation de
précédence
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 35
Evénements (10)
Contrainte
Connaissances locales sur les
événements
Solution
Définir un opérateur de précédence et lui
associer une sémantique
Utiliser le principe de causalité
Cause précède toujours l’effet
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 36
Evénements (11)
3 niveaux de causalité
Processus
Evénement local n’agit que sur les
événements futurs
Entre processus
Communication
Emission précède toujours la réception
Composition
Relation transitive
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 37
Causalité (1)
Définition
Proposée par Lamport [78]
Principe
Evénement e précède causalement
l’événement e’
e → e’
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 38
Causalité (2)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 39
Causalité (3)
Causalité potentielle
Propriété de la causalité
Définit uniquement une causalité potentielle
On ne peut pas affirmer que e est la cause
effective de e’
Par contre e’ ne peut pas être la cause de e
Affirmation par négation
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 40
Causalité (4)
Indépendance causale
Définition
¬ (e → e’ ) et ¬ (e’ → e)
Aucun de ces événements ne peut
influencer l’autre
Ils sont causalement indépendants
e || e’
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 41
Causalité (5)
Passé
Notion rattachée à un événement
Passé(e) = { e* } | (e* → e) {e}
Intérêt
Indépendance causale
Aucun événement ne fait partie du passé de
l’autre
Aucun n’influence l’autre
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 42
Causalité (6)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 43
Causalité (7)
Chaîne causale
e0, ... ,en : ei-1 → ei, i=1,...,n
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 44
Horloges logiques (1)
Présentation
Définies par Lamport
But
Dater des événements
Assurer la condition de validité
Déterminée par une connaissance locale
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 45
Horloges logiques (2)
Principe
Horloge logique sur chaque site
Compteur (dater les événements)
Site i Horloge Hi
Estampille
Datation
Evénement e dans site i
H(e) = Hi
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 46
Horloges logiques (3)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 47
Horloges logiques (4)
Algorithmique
Initialisation
Hi = 0 pour tout i
Evénement e local (site i)
Hi = Hi + 1
Dater e avec Hi
Emission d’un message m
Estampiller m
( m , Hi(m) )
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 48
Horloges logiques (5)
Réception d’un message
Hj = max ( Hj , Hi ) + 1
Dater l’événement de réception avec la valeur de
Hj
La date de l’émission peut influencer la date de
réception
Intérêt
Ordonner les événements d’un système
réparti
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 49
Horloges logiques (6)
Condition de validité
Ordonnancement par estampille
Condition suffisante de validité
e → e’ ⇒ Hi(e) < Hj(e’)
Propriété faible de la validité de l’horloge
Implication dans un seul sens
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 50
Horloges logiques (7)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 51
Horloges logiques (8)
Type d’ordre
Partiel
L’ordre donné par les estampilles n’est pas
strict
Deux événements peuvent avoir la même date
Ils sont causalement indépendants
Comment les ordonner ?
Ajouter un autre critère
Numéro de processus, Adresse MAC, …
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 52
Horloges logiques (9)
Ordre total
2 événements
a sur Si et b sur Sj
a b ssi
(H(a) < H(b)) ou (H(a) = H(b) et i<j)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 53
Horloges logiques
(10)
Limites des estampilles
Définissent un ordre total
Mais, la relation de dépendance
causale est un ordre partiel
Eliminent artificiellement la
dépendance causale
e → e’ : e → e’ ou e || e’
He = He’ , He< He’ , He> He’
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 54
Horloges logiques
(11)
Ne sont pas denses
Si H(e) < H(e’), on ne peut pas savoir s’il
existe un événement e’’ tel que :
e → e’’ et e’’ → e ’
Problème insoluble
Est-ce qu’un événement va arriver ?
Si oui Quand ?
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 55
Horloges logiques
(12)
Effets de l’asynchronisme
Ambiguïté des horloges logiques
Exemple
4 processus P1, P2, P3 et P4
P2, P3 et P4 envoient des messages à P1
Contrainte
Délivrés dans l’ordre de leurs estampilles
Le message m2(3) a été délivré
Peut-on délivrer m4(8) ?
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 56
Horloges logiques
(13)
Cas 1 Cas 2 Cas 3
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 57
Datation (1)
Constat
Horloges logiques
Satisfont la propriété de validité faible
Problème
Comment caractériser la dépendance
causale ?
Définir un système de datation tel que
e → e’ ⇔ Hi(e) < Hj(e’)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 58
Datation (2)
Idée
Utiliser le passé ou l’historique d’un
événement
Passé
Passé(e) = { e* | (e* → e)} {e}
Passéi(e) = { e* } | (e* → e) ∧ e* ∈ pi
Passé(e) = Passéi(e) , {e}
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 59
Datation (3)
Connaître le passé reviendrait à
définir la dépendance causale
e → e’ ≡ e ∈ Passé( e’ )
Comment représenter le passé
Définir des Horloges Vectorielles
Estampillage d’un message avec l’historique
à la place d’une simple valeur d’une horloge
logique
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 60
Datation (4)
Définition du passé
Passé d’un événement
Evénement le plus récent
Le connaître c’est connaître le passé
Définit par un vecteur de n éléments
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 61
Datation (5)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 62
Horloges vectorielles
(1)
Présentation
Proposées par Fidge et Mattern (88)
Principe
Un vecteur de taille n par site
Chaque site a une composante dans ce
vecteur
Date d’un événement
Valeur du vecteur
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 63
Horloges vectorielles
(2)
Algorithmique
Initialement
Tous les vecteurs à 0
Vi = (0,…,0)
Evénement local (Site i)
Vi[i] = Vi[i]+1
Envoi d’un message par site i
Estampillé par valeur courante de
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 64
Horloges vectorielles
(3)
Réception d’un message (m,Vm)
Vi[i] = Vi[i]+1
Vi[i] = max(Vi[i],Vm[i]) pour j = 1..n, j ≠ i
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 65
Horloges vectorielles
(4)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 66
Horloges vectorielles
(5)
Propriétés
Relation d’ordre partiel
V ≤ V’ défini par ∀i : V[i] ≤ V’[i]
V < V’ défini par V ≠ V’ et V ≤ V’
V || V’ défini par ¬ (V ≤ V’) et ¬ (V’ ≤
V)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 67
Horloges vectorielles
(6)
Densité
Soient ei ∈ Si et ej ∈ Sj.
Si Vk(ei) < Vk(ej), pour k≠ j, alors il existe ek
tel que ¬(ek → ei) et (ek → ej)
Dépendance causale
Lien entre les horloges vectorielles et
la dépendance causale
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 68
Horloges vectorielles
(7)
∀a,b :
a → b ⇔ HVect (a) < HVect (b)
a || b ⇔ HVect (a) || HVect (b)
Condition forte de validité
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 69
Horloges matricielles
(1)
Présentation
Horloge dans chaque site
HMi = matrice nxn
Permet de dater un événement
Signification
HMi(j,k)
nombre de messages issus de pj vers pk dont pi a
connaissance
envoi est causalement antérieur à l’instant
présent
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 70
Horloges matricielles
(2)
Algorithmique
Evénement local
HMi[i, i] = HMi[i, i] + 1
Emission d’un message m
HMi[i, i] = HMi[i, i] + 1
HMi[i, j] = HMi[i, j] + 1
le message est estampillé par Em=HMi
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 71
Horloges matricielles
(3)
Réception d’un message m
Contrôler la dépendance causale
Ne délivrer m que si tous les messages qui lui
sont antérieurs ont été délivrés
Em[j, i] = HMi[j, i] + 1 (ordre FIFO j → i)
∀ k ≠ i, j : Em[k, i] = HMi[k, i] (messages
des autres sites)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 72
Horloges matricielles
(4)
Délivrer et mettre à jour les horloges
HMi[i, i] = HMi[i, i] + 1
HMi[j, i] = HMi[j, i] + 1
∀ k ≠ i, j et ∀ l ≠ i : HMi[k, l] = max(HMi[k,l],
Em[k,l]
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 73
Horloges matricielles
(5)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 74
Observation (1)
Présentation
Observer un calcul réparti
Introduire un processus observateur
Reçoit des messages des autres
processus
Informé des événements
Observation
Suite des événements reçus
Doit être compatible avec la relation de
causalité
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 75
Observation (2)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 76
Observation (3)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 77
Observation (4)
Validité d’une observation
Principe
Temps de transmission borné : d
Instant T
Délivrer, à l’instant T, tous les messages ayant
des estampilles < T – d dans l’ordre des
estampilles
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 78
Observation (5)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 79
Coupure (1)
Présentation
Notion d’état
Système centralisé
Etat global et instantané
Horloge commune
Mémoire commune
Système réparti
Notion d’état assez floue
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 80
Coupure (2)
Définition
Image « instantanée » de l’état
Ensemble d’événements
Permet de définir un passé et un futur
par rapport à la coupure
Pour chaque processus
Capturer l’état après le dernier événement
avant la coupure
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 81
Coupure (3)
Cohérence
Doit vérifier la causalité
(e’ ∈ C ∧ e → e’ ) ⇒ e ∈ C
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 82
Coupure (4)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 83
Coupure (5)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 84
Coupure (6)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 85
Coupure (7)
Mastère Informatique
Yahya SLIMANI - FST
ISIG Kairouan Tunis 86