Moez Ben Haj Hmida
3ème Ingénieurs en Informatique
Module : Systèmes distribués
Université privée SESAME
SystèmesDistribués
2
ARCHITECTURES SÉQUENTIELLES
ET PARALLÈLES
Partie I
SystèmesDistribués
3
Systèmes Centralisés
! Caractéristiques
!  Architecture
o  1 Processeur
–  Une horloge commune pour l...
SystèmesDistribués
4
Systèmes Parallèles
! Systèmes parallèles
!  Ensemble d’éléments de calcul
!  Qui peuvent communiquer...
SystèmesDistribués
5
Mémoire partagée
! Processus partagent une mémoire
!  Espace d’adressage commun pour les
processus
! ...
SystèmesDistribués
6
Synchronisation
! Relations de précédence entre processus
!  P1 doit s’exécuter avant P2
!  P1 attend...
SystèmesDistribués
7
Communications (1)
! Communication
!  Permettre à 2 ou plusieurs processus de
s’échanger de l’informa...
SystèmesDistribués
8
Communications (2)
! Eléments de base
!  Un émetteur
!  Un récepteur
!  Types de communication
o  Emi...
SystèmesDistribués
9
Communications (3)
! Types d’IPC
!  IPC dits classiques
o  Signaux, Tubes, Fichiers, Sockets
!  IPC a...
SystèmesDistribués
10
Communications (4)
! Supports de communication
!  Espace partagé
o  Mémoire (Tampon ou Buffer)
o  Pr...
SystèmesDistribués
11
Communications (5)
!  Tubes Nommés ou Non nommés (Pipes)
o  Canal de communication virtuel
o  Commun...
SystèmesDistribués
12
Communication (6)
! Communication par signaux
!  Signal
o  Interruption logicielle
–  Peut être prog...
SystèmesDistribués
13
Communication (7)
! Communication par sémaphore
!  Pas de communication réelle
o  Plutôt de la synch...
SystèmesDistribués
14
Systèmes Parallèles et
Systèmes Distribués
! Systèmes parallèles
!  Ensemble d’éléments de calcul
! ...
SystèmesDistribués
15
Systèmes Parallèles / Systèmes Distribués
! Pas parallèles, pas distribués
!  PCs ou stations de tra...
SystèmesDistribués
16
ARCHITECTURES ET SYSTÈMES
DISTRIBUÉS
Partie II
SystèmesDistribués
17
Pourquoi le réparti (1)
! Evolution technologique
!  Machines
o  Plus puissantes
–  Calcul et espace...
SystèmesDistribués
18
Pourquoi le réparti (2)
! Informatique actuelle
!  Répartie
o  De moins en moins de centralisation
!...
SystèmesDistribués
19
Systèmes Répartis (1)
! Présentation générale
!  Ensemble d’éléments reliés par un réseau de
communi...
SystèmesDistribués
20
Systèmes Répartis (2)
!  Fonctionnement collaboratif
o  Réalisation d’une tâche commune
–  Collabora...
SystèmesDistribués
21
Caractéristiques (1)
! Absence d’état global
!  Pas de référentiel temporel commun
o  Plusieurs horl...
SystèmesDistribués
22
Caractéristiques (2)
! Architecture matérielle
!  Multi-processeurs à mémoire partagée
!  Clusters (...
SystèmesDistribués
23
Exemples (1)
! Serveurs de BD ou de fichiers
!  Fichiers stockés sur un serveur
!  Accessibles de n’...
SystèmesDistribués
24
Exemples (2)
! Super-calculateur
!  Machine virtuelle
o  Regroupe plusieurs machines distantes
–  Ut...
SystèmesDistribués
25
Exemples (3)
BitTorrent
SystèmesDistribués
26
Propriétés (1)
! Disponibilité
!  Prêt à l’utilisation
o  Est toujours accessible
! Fiabilité
!  Con...
SystèmesDistribués
27
Propriétés (2)
! Résistance aux pannes
!  Tolère les défaillances de ses composants
o  Cas particuli...
SystèmesDistribués
28
Propriétés (3)
! Hétérogénéité
!  Avantages
o  Utiliser (partager) des composants de différentes
nat...
SystèmesDistribués
29
Propriétés (4)
! Performances
!  Système naturellement parallèle et concurrent
o  Autonomie des comp...
SystèmesDistribués
30
Transparence (1)
! Présentation
!  Propriété fondamentale
o  Cacher à l’utilisateur la répartition
–...
SystèmesDistribués
31
Transparence (2)
! Niveaux
!  Transparence d’accès
o  Accès unique pour les ressources distantes et
...
SystèmesDistribués
32
Transparence (3)
!  Transparence de localisation
o  Pas de référence sur la localisation physique de...
SystèmesDistribués
33
Transparence (4)
!  Transparence de mobilité
o  Déplacer des composants matériels ou logiciels
!  Tr...
SystèmesDistribués
34
Transparence (5)
!  Transparence d’échelle (Scalability)
o  Supporter, sans difficultés majeures, l’...
SystèmesDistribués
35
Problèmes (1)
! Pas d’état global
!  Difficulté de connaître l’état global d’un
système distribué à ...
SystèmesDistribués
36
Problèmes (2)
! Sans serveur centralisé
!  Solution entièrement distribuée
o  Plus complexe à gérer
...
SystèmesDistribués
37
Problèmes (3)
! Asynchronisme
!  Au niveau communication
o  Délai de transmission d’un message
–  Pa...
SystèmesDistribués
38
Problèmes (4)
! Administration
!  Plus complexe qu’en centralisé
o  Systèmes d’administration différ...
SystèmesDistribués
39
Problèmes (5)
! Vulnérabilité
!  Multiplicité des niveaux de panne
o  Matériel
o  Logiciel
o  Réseau...
SystèmesDistribués
40
COMMUNICATION DANS LES
SYSTÈMES DISTRIBUÉS
Partie III
SystèmesDistribués
41
Distribué vs Centralisé
! Pas de partage
!  Processeurs autonomes
!  Mémoire distribuée
!  OS indépe...
SystèmesDistribués
42
Réseau de communication
!  Processus sur des machines distantes
o  Un processus émetteur et un proce...
SystèmesDistribués
43
Communication par message (1)
! Type RDV (Rendez-Vous)
!  Processus émetteur
o  Send(Nom du récepteu...
SystèmesDistribués
44
Communication par message (2)
!  Utilise un adressage symétrique
o  L’émetteur doit identifier le ré...
SystèmesDistribués
45
Communication par message (3)
!  Type asynchrone
o  Objectif
–  Réduire l’aspect fortement synchrone...
SystèmesDistribués
46
Communication par socket (1)
! Communication par pipe
!  Processus sur la même machine
! Communicati...
SystèmesDistribués
47
Communication par socket (2)
! Utilisation du modèle Client/Serveur
!  Processus associé au serveur
...
SystèmesDistribués
48
Communication par socket (3)
! Réseau vs Utilisateur
!  Schéma Client/Serveur
o  Même machine
o  Mac...
SystèmesDistribués
49
Communication par socket (4)
–  Serveur peut implémenter plusieurs services
"  Adresse IP nécessaire...
SystèmesDistribués
50
Source: S. Krakowiak
Sockets (1)
SystèmesDistribués
51
Sockets (2)
SystèmesDistribués
52
Sockets (3)
! Introduction
!  Utilité des Sockets
o  Interface pour faciliter l’utilisation des prot...
SystèmesDistribués
53
Sockets (4)
!  Sockets et réseau
o  Interface d’accès
–  D’un hôte vers les interfaces de transport ...
SystèmesDistribués
54
Sockets (5)
Source: S. Krakowiak
SystèmesDistribués
55
Sockets (6)
! Sockets coté serveur
!  Serveur
o  Fournit un ou plusieurs services à des clients
–  L...
SystèmesDistribués
56
Source: S. Krakowiak
SystèmesDistribués
57
Source: S. Krakowiak
SystèmesDistribués
58
Source: S. Krakowiak
SystèmesDistribués
59
Source: S. Krakowiak
SystèmesDistribués
60
Sockets (7)
! Sockets coté client
!  2 étapes sont nécessaires
!  Hypothèses
o  Adresse du serveur c...
SystèmesDistribués
61
Source: S. Krakowiak
SystèmesDistribués
62
Source: S. Krakowiak
SystèmesDistribués
63
Sockets (8)
! Communication avec les sockets
!  Etablissement d’une connexion
!  Client et serveur d...
SystèmesDistribués
64
Protocoles (1)
! Protocoles de la couche contrôle
!  UDP
o  User Data Protocol
o  Entête minimale
o ...
SystèmesDistribués
65
Protocoles (2)
!  TCP
o  Transmission Control Protocol
o  Ajout d’informations de contrôle dans le p...
SystèmesDistribués
66
Communication TCP (1)
Source: Stépahne Vialle
SystèmesDistribués
67
Communication TCP (3)
!  Serveur attend des demandes de connexion
!  Client connecte sa socket au se...
SystèmesDistribués
68
Communication TCP (4)
!  Serveur crée un processus pour dialoguer
avec le client
!  Nouveau processu...
SystèmesDistribués
69
Mode TCP
SystèmesDistribués
70
Mode UDP
SystèmesDistribués
71
Bibliothèques
! Windows
!  winsock.lib
!  winsock.h
!  winsock.dll
! Unix
!  stdio.h – sys/types.h –...
SystèmesDistribués
72
Modèle RPC (1)
! Modèle appel de procédure
!  Modèle fondamental en programmation
o  Utilisé pour st...
SystèmesDistribués
73
Modèle RPC (2)
! Modèle pour systèmes répartis
!  Modèle d’appel classique inadapté
o  Appelant et a...
SystèmesDistribués
74
Modèle RPC (3)
!  Définir un nouveau modèle
o  Caractéristiques
–  Transparent par rapport à l’utili...
SystèmesDistribués
75
Modèle RPC (4)
! Principes du modèle
!  Infrastructure C/S
o  Plus grande hétérogénéité
o  Plus gran...
SystèmesDistribués
76
Modèle RPC (5)
SystèmesDistribués
77
Appel
Local
Préparer le message
d’appel distant (Emballer
paramètres)
Envoyer message Recevoir messa...
SystèmesDistribués
78
Modèle RPC (6)
SystèmesDistribués
79
Modèle RPC (7)
Source: Martin
Quinson (ESIAL)
SystèmesDistribués
80
Modèle RPC (8)
Source:
Austran 99
SystèmesDistribués
81
Modèle RPC (9)
! Mise en œuvre
!  Gère l’hétérogénéité des environnements
d’exécution
!  Assure une ...
SystèmesDistribués
82
Modèle RPC (10)
! Limites du modèle
!  Passage de paramètres par référence
!  Gestion des pannes
o  ...
SystèmesDistribués
83
Modèle RMI (1)
! Présentation
!  Extension du modèle RPC à l’objet
o  Modèle RPC
–  Basé sur l’unité...
SystèmesDistribués
84
Modèle RMI (2)
! Limites du modèle RPC
!  Applications statiques
o  Pas de création dynamique
o  Pas...
SystèmesDistribués
85
Modèle RMI (3)
! Solutions
!  Utiliser des objets répartis à la place des
procédures
o  CORBA, JAVA ...
SystèmesDistribués
86
Modèle RMI (4)
!  Composants répartis
o  EJB, .NET, …
! Objet en programmation
!  Elément fondamenta...
SystèmesDistribués
87
Modèle RMI (5)
! Structure du modèle
!  Modèle en couches
o  Souche (Stub)
o  Squelette (Skeleton)
o...
SystèmesDistribués
88
Modèle RMI (6)
!  Transfert par sérialisation
o  Sérialisation
–  Conversion de l’état d’un objet en...
SystèmesDistribués
89
Modèle RMI (7)
Source: Richard GRIN
(Uni. Nice)
SystèmesDistribués
90
Modèle RMI (8)
! Couches du modèle
!  STUB (Souche)
o  Représentant local de l’objet distant
–  Emba...
SystèmesDistribués
91
Modèle RMI (9)
!  SKELETON (Squelette)
o  Déballe les paramètres de la méthode invoquée
o  Appel rée...
SystèmesDistribués
92
Modèle RMI (10)
!  Couche Références distantes
o  Traduction de la référence locale au stub en une
r...
SystèmesDistribués
93
JAVA RMI (1)
! Objectif
!  Ecrire des applications distribuées
! RMI
!  Extension du langage Java
o ...
SystèmesDistribués
94
MyRemoteObject o = …
o.myMethod
Celui là !
SystèmesDistribués
95
JAVA RMI (2)
! Problèmes
!  Tous les objets, d’une machine, sont ils
accessibles par les autres mach...
SystèmesDistribués
96
JAVA RMI (3)
! Quelques solutions
!  Déclarer les objets appelés à distance
o  Sous-classe de java.r...
SystèmesDistribués
97
JAVA RMI (4)
!  Toutes les méthodes distantes peuvent
générer des exceptions
o  java.rmi.RemoteExcep...
SystèmesDistribués
98
JAVA RMI (5)
o  Appeler une méthode d’un objet receveur distant
–  Passer le tampon en paramètre
o  ...
SystèmesDistribués
99
JAVA RMI (6)
!  Utilisateur de l’objet
o  Récupère une référence avec ce nom
–  static Object Naming...
SystèmesDistribués
100
JAVA RMI (7)
! Conclusion
!  RMI
o  Extension distribuée de Java
o  Simple
o  Préserve toutes les q...
SystèmesDistribués
101
Algorithmique Répartie
Partie III
SystèmesDistribués
102
Temps et Ordre
dans les systèmes réparties
SystèmesDistribués
103
Ordonnancement (1)
! Objectifs
!  Définir un ordre entre les événements d’un
système
o  Nécessaire ...
SystèmesDistribués
104
Ordonnancement (2)
! Contraintes en réparti
!  Absence de mémoire commune
o  Support d’un état
–  E...
SystèmesDistribués
105
Ordonnancement (3)
! Utilité
!  Raisonnement sur
o  Système
o  Application
!  Définir et vérifier d...
SystèmesDistribués
106
Propriétés
! Objectif : Vérifier l’état d’un système
! Classes de propriétés
!  Sûreté (Safety)
o  ...
SystèmesDistribués
107
Modèles temporels (1)
! Modèle asynchrone
!  Modéliser le monde réel
o  Prendre en compte l’asynchr...
SystèmesDistribués
108
Modèles temporels (2)
!  Principes
o  Communication par messages
–  Un émetteur et un récepteur
o  ...
SystèmesDistribués
109
Modèles temporels (3)
SystèmesDistribués
110
Communication (1)
! Propriétés d’une communication
!  Emission d’un message
o  Finit toujours par a...
SystèmesDistribués
111
Communication (2)
"  Instants importants pour un message
–  Délivrance
–  Réception
SystèmesDistribués
112
Evénements (1)
! Exécution d’un processus
–  Suite d’événements
"  Locaux
–  Calcul
–  Communicatio...
SystèmesDistribués
113
Evénements (2)
! Synchronisation de processus
!  2 suites d’événements distinctes
!  Imposer un ord...
SystèmesDistribués
114
Evénements (3)
! Problématique de la datation
!  Centralisé
o  Aucun problème
–  Même horloge
"  Do...
SystèmesDistribués
115
Causalité (1)
! Principe
!  Cause précède toujours l’effet
!  Intérêt
o  Définir une relation de pr...
SystèmesDistribués
116
Causalité (2)
!  2 Processus
o  Emission précède toujours la réception
!  Composition
o  Transitivi...
SystèmesDistribués
117
Causalité (3)
SystèmesDistribués
118
Causalité (4)
! Propriétés
!  Relation potentielle (par négation)
o  Sémantique particulière
–  Cau...
SystèmesDistribués
119
Causalité (5)
! Dépendance et indépendance
!  Définition
o  Passé ou historique d’un événement
o  h...
SystèmesDistribués
120
Problème de Datation (1)
! Problématique
!  Pas de système central
o  Absence de vue globale
o  Eta...
SystèmesDistribués
121
Problème de Datation (2)
SystèmesDistribués
122
Observations (1)
! Propriété d’une observation
!  Validité
o  L’observation doit respecter la causa...
SystèmesDistribués
123
Observations (2)
SystèmesDistribués
124
Observations (3)
! Approche
!  Temps de transmission borné (α)
!  Existence d’une horloge (H)
!  Fo...
SystèmesDistribués
125
Observations (4)
!  Instant de délivrance
o  Instant t
o  Délivrer tous les messages avec
–  Estamp...
SystèmesDistribués
126
Horloges logiques (1)
! Définies par Lamport
! But
!  Dater des événements
o  Assurer la condition ...
SystèmesDistribués
127
Horloges logiques (2)
–  Evénement sur site i
"  Daté par H(e) = Hi
SystèmesDistribués
128
Horloges logiques (3)
! Algorithmique
!  Init
o  Hi = 0 pour tout i
!  Evénement e local
o  Hi = Hi...
SystèmesDistribués
129
Horloges logiques (4)
o  Réception d’un message par Pj
–  Hj = max ( Hj , Hi ) + 1
–  Dater la réce...
SystèmesDistribués
130
Horloges logiques (5)
! Ordre total (relation ! )
!  2 événements
o  a sur Si et b sur Sj
o  a ! b ...
SystèmesDistribués
131
Horloges vectorielles (1)
! Problèmes des horloges logiques
!  Ordre artificiel sur les événements
...
SystèmesDistribués
132
Horloges vectorielles (2)
! Principe
!  Horloge vectorielle / Site
!  Taille du vecteur d’horloge
o...
SystèmesDistribués
133
Horloges vectorielles (3)
! Fonctionnement
!  Associer un vecteur Vi à chaque site Pi
!  Init
o  Vi...
SystèmesDistribués
134
SystèmesDistribués
135
Horloges matricielles (1)
! Synthèse
!  Horloge logique ou scalaire
o  Réduite à un nombre
–  Ce qu...
SystèmesDistribués
136
Horloges matricielles (2)
! Principe
!  Horloge matricielle / Site
o  nxn HMi
!  Evénement ei de Pi...
SystèmesDistribués
137
Horloges matricielles (3)
! Règles de gestion
!  Evénement local à Pi
o  HMi[i,i] ++
!  Envoi de me...
SystèmesDistribués
138
Horloges matricielles (4)
!  Réception de (m,Em) par Pj
o  Délivré que si tous les messages qui son...
SystèmesDistribués
139
SystèmesDistribués
140
Asynchronisme (1)
! Problématique
!  Comment délivrer un ensemble d’éléments
dans un certain ordre
...
SystèmesDistribués
141
Asynchronisme (2)
! Règle de délivrance
!  Ne délivrer un message que s’il est stable
SystèmesDistribués
142
Diffusion causale (1)
! Principe
!  Diffusion d’un message à un ensemble de
processus destinataires...
SystèmesDistribués
143
Diffusion causale (2)
! Problèmes
!  Spécification précise du mécanisme de
diffusion
o  Définition ...
SystèmesDistribués
144
Diffusion causale (3)
! Diffusion causale
–  Principes
"  Communication fiable
"  Propriété à garan...
SystèmesDistribués
145
Diffusion fiable
! Principe
!  Un message est délivré à tous ses
destinataires ou à aucun
o  Sémant...
SystèmesDistribués
146
Diffusion atomique
! Principe
!  Appelée aussi diffusion totalement ordonnée
!  Deux propriétés
o  ...
SystèmesDistribués
147
Diffusion FIFO
! Principe
!  Deux messages émis par le même émetteur
sont délivrés à tout récepteur...
SystèmesDistribués
148
Etat d’un SR (1)
! Théorie
!  Existence d’un observateur
o  Accès instantané au système
o  Impossib...
SystèmesDistribués
149
Etat d’un SR (2)
! Coupure (cut)
!  Image « instantanée » du système
!  Ensemble d’événements
o  El...
SystèmesDistribués
150
Etat d’un SR (3)
!  e ∈ C et (e’ e) ⇒ e’ ∈ C
!  Ordre par inclusion
o  C1 < C2 si C1 ⊂ C2
SystèmesDistribués
151
Coupure
! Cohérence
!  Respect de la causalité
o  Un message ne peut pas venir du futur
!  Coupure ...
SystèmesDistribués
152
SystèmesDistribués
153
SystèmesDistribués
154
SystèmesDistribués
155
ALGORITHMIQUE REPARTIE
SystèmesDistribués
156
Introduction
! Algorithmique répartie
!  Algorithmique spécifique
o  Tient compte des caractéristiq...
SystèmesDistribués
157
Exclusion mutuelle (1)
! Rappel
!  Partage de ressource
!  Section critique
o  Code d’accès à une r...
SystèmesDistribués
158
Exclusion mutuelle (2)
o  Propriété fondamentale
–  Exclusion Mutuelle
–  A un instant donné au plu...
SystèmesDistribués
159
Exclusion mutuelle (3)
!  Solutions en distribué
o  Quel sens donner à « Instant donné »
o  Utilise...
SystèmesDistribués
160
Exclusion mutuelle (4)
! Solutions multiples
!  Centralisée
o  Serveur centralise les demandes
–  D...
SystèmesDistribués
161
Exclusion mutuelle (4)
! Solutions distribuées
!  Solution de Lamport
o  N sites
o  Liaison par can...
SystèmesDistribués
162
Exclusion mutuelle (5)
–  Contenu d’une entrée i
"  Message en provenance de i
o  Nombre de message...
SystèmesDistribués
163
Exclusion mutuelle (6)
o  Réception de (REQ)
–  Définir l’algorithme correspondant
o  Réception de ...
SystèmesDistribués
164
Stabilité de message (1)
! Problème
!  Ordre de délivrance des messages ?
o  Résolution de l’asynch...
SystèmesDistribués
165
Stabilité de message (2)
! Règle
!  Ne délivrer un message que s’il est stable
! Problématiques de ...
SystèmesDistribués
166
Diffusion causale (1)
! Principe
!  Diffusion d’un message à un ensemble de
processus destinataires...
SystèmesDistribués
167
Diffusion causale (2)
! Exemple 1
!  Diffusion causale
o  Communication fiable
o  Propriété
–  ∀m,m...
SystèmesDistribués
168
Diffusion causale (3)
SystèmesDistribués
169
Cohérence de données (1)
! Exemple
!  Base de données sur 3 sites
!  Fonctions d’un site
o  Consult...
SystèmesDistribués
170
Cohérence de données (2)
SystèmesDistribués
171
Cohérence de données (3)
! Problème
!  Trouver le principe d’une mise à jour
cohérente d’une base
SystèmesDistribués
172
Election (1)
! Problématique
!  Ensemble de processus
!  Choisir un seul
!  Le faire connaître aux ...
SystèmesDistribués
173
Election (2)
! Principes
!  Election déclenchée par n’importe quel
processus
!  Existence de plusie...
SystèmesDistribués
174
Election (3)
! Intérêts
!  Régénération d’un jeton
!  Election d’un maître
o  Schéma maître/esclaves
SystèmesDistribués
175
Election (4)
! Algorithmes
!  Bully algorithm
o  Algorithme de la brute
o  Hypothèses
–  Réseau fia...
SystèmesDistribués
176
Algorithme de base
o  Principe
–  Demande d’élection par inondation
–  Un processus répond aux proc...
SystèmesDistribués
177
SystèmesDistribués
178
Algorithme de Chang et
Roberts (1)
! Principe
!  Sites organisés sous forme d’anneau
!  Election di...
SystèmesDistribués
179
Algorithme de Chang et
Roberts (2)
SystèmesDistribués
180
Terminaison (1)
! Modèle
!  Ensemble de Processus
o  Communication par message
o  Etat d’un process...
SystèmesDistribués
181
Terminaison (2)
! Problème
!  Comment savoir qu’un calcul réparti est
terminé ?
o  Vérification de ...
SystèmesDistribués
182
Terminaison (3)
! Méthodes de détection
!  Méthodes générales
o  Analyse de l’état global
–  Termin...
SystèmesDistribués
183
Terminaison (4)
! Schéma anneau
!  Trouver le principe
!  Trouver une anomalie majeure de la méthod...
SystèmesDistribués
184
SystèmesDistribués
185
Terminaison (5)
! Algorithme de Misra (Anneau)
!  Principe
o  Site avec couleur
–  Noir
"  A été ac...
SystèmesDistribués
186
SystèmesDistribués
187
Terminaison (6)
! Schéma graphe (Dijkstra-Scholten)
o  Principe
–  Basé sur la notion de calcul dif...
SystèmesDistribués
188
Terminaison (7)
–  Construction d’un arbre implicite de recouvrement
"  Quel est le père d’un nœud ...
SystèmesDistribués
189
Terminaison (8)
–  Nœud renvoie un signal à son père
"  Déficit annulé sur arc sortant
"  Renvoi d’...
SystèmesDistribués
190
SystèmesDistribués
191
Consensus (1)
! Présentation
!  Prendre une décision concertée
o  Définir un modèle qui tient compt...
SystèmesDistribués
192
Consensus (2)
! Spécification
!  Ensemble de processus reliés par un canal
o  Chaque processus Pi p...
SystèmesDistribués
193
Consensus (3)
o  Intégrité
–  Tout processus décide au plus une fois
"  La décision prise est défin...
SystèmesDistribués
194
Consensus (4)
!  Pannes (défaillances)
o  Faire des hypothèses sur les processus et le
système de c...
SystèmesDistribués
195
PARTIE IV
Gestion de
Données Réparties
SystèmesDistribués
196
Historique (1)
! Gestion Centralisée (70)
–  Centralisation de l’information
"  SGF
"  SGBD
–  Dupl...
SystèmesDistribués
197
Historique (2)
! Gestion répartie (75-85)
–  Serveurs accessibles à distance
–  SGF répartis (Unix)...
SystèmesDistribués
198
Historique (3)
! Modèles à objets
–  Paradigme objet
"  Serveurs à objets répartis
"  Notion de mid...
SystèmesDistribués
199
Historique (4)
"  Structure du middleware
"  Sécurité (communication)
! Données du Web (90)
–  Nouv...
SystèmesDistribués
200
Historique (5)
! Systèmes P2P
–  Modèle plus équitable que C/S
–  Echelle plus large
! Systèmes mob...
SystèmesDistribués
201
Réplication (1)
! Motivations
–  Disponibilité
"  Tolérance aux pannes
–  Performances
"  Rapproche...
SystèmesDistribués
202
Réplication (2)
! Problématique
–  Cohérence
"  Conséquence de la réplication
"  Comportement ident...
SystèmesDistribués
203
Réplication (3)
Source: Sacha
Krakowiak
SystèmesDistribués
204
Réplication (4)
! Maintien de la cohérence
–  Protocole
"  Exécution des requêtes clients
"  Mainte...
SystèmesDistribués
205
Modèles de cohérence
! But
–  Etablir un contrat entre un client et un fournisseur
(Serveur)
! Opér...
SystèmesDistribués
206
Cohérence stricte
! Principe
–  Lecture d'une donnée D retourne la valeur de la
dernière écriture s...
SystèmesDistribués
207
Linéarisabilité
! Principe
–  Modèle 2PC classique
"  Sérialisation des requêtes
–  Utilisé dans le...
SystèmesDistribués
208
Cohérence séquentielle (1)
! Principe
–  Opérations exécutées selon S
–  Ordre dans tout processus ...
SystèmesDistribués
209
Cohérence séquentielle (2)
! Linéarisation vs séquentialité
–  Pas de contraintes sur l'ordre relat...
SystèmesDistribués
210
Source: Sacha
Krakowiak
SystèmesDistribués
211
Source: Sacha
Krakowiak
SystèmesDistribués
212
Cohérence séquentielle (3)
! Synthèse
–  Moins stricte que la linéarisabilité
"  Plusieurs ordonnan...
SystèmesDistribués
213
Cohérence causale (1)
! Principes
–  Modèle moins strict
"  Basé sur une relation de causalité
"  N...
SystèmesDistribués
214
Cohérence causale (2)
! Exemples
"  E1: p écrit x, puis E2: q lit x, alors E1 → E2
"  E1: p lit x, ...
SystèmesDistribués
215
Cohérence causale (3)
! Cohérence des écritures
–  Ecritures causalement liées vues par tous les
pr...
SystèmesDistribués
216
Cohérence causale (4)
Source: Sacha
Krakowiak
Commentez les lectures de
p3 et p4
Est ce que scénari...
SystèmesDistribués
217
Cohérence FIFO (1)
! Principes
–  Relaxation de la cohérence causale
"  Causalité inter-processus (...
SystèmesDistribués
218
Cohérence FIFO (2)
Source: Sacha
Krakowiak
SystèmesDistribués
219
Cohérence synchronisée (1)
! Constat
–  Cohérence partielle et non totale
"  Exécution d'une sectio...
SystèmesDistribués
220
Cohérence synchronisée (2)
! Cohérence faible
–  Accès aux variables de synchronisation associées
à...
SystèmesDistribués
221
Cohérence synchronisée (3)
–  Exécution d'une opération sur une variable de
synchronisation
"  Réal...
SystèmesDistribués
222
Cohérence synchronisée (4)
–  Exécution d'une lecture ou d'une écriture
"  Exécution de toutes les ...
SystèmesDistribués
223
Cohérence synchronisée (5)
SystèmesDistribués
224
Cohérence synchronisée (6)
! Variantes
–  Définir des instants de synchronisation
"  Cohérence à l'...
SystèmesDistribués
225
Cohérence à la sortie (1)
! Principes
–  Protéger une séquence d'opérations sur un
ensemble de donn...
SystèmesDistribués
226
Cohérence à la sortie (2)
"  Acquire(V)
–  Toutes les copies locales des variables protégées
sont m...
SystèmesDistribués
227
Cohérence à la sortie (3)
! Variante
–  Cohérence paresseuse ou lazy release
consistency
"  Les mod...
SystèmesDistribués
228
Cohérence à la sortie (4)
SystèmesDistribués
229
Cohérence à l'entrée (1)
! Principes
"  Similaire à la lazy consistency
"  Toute variable modifiée ...
SystèmesDistribués
230
Cohérence à l'entrée (2)
SystèmesDistribués
231
Cohérence à terme (1)
! Constats
–  Beaucoup de lectures
–  Conflits d'écritures assez rares
"  Ecr...
SystèmesDistribués
232
Cohérence à terme (2)
! Idée
–  Tolérer des données incohérentes pendant un
certain temps
–  Condit...
SystèmesDistribués
233
Cohérence à terme (3)
! Principes
–  Eventual consistency
–  Réalisée par des protocoles
"  Propage...
SystèmesDistribués
234
Cohérence à terme (4)
–  Ecritures peu fréquentes
"  Résolues cas par cas
! Problème
–  Accès succe...
SystèmesDistribués
235
Cohérence orientée client (1)
! Types d'opérations
–  Lectures monotones
"  Processus a lu une vale...
SystèmesDistribués
236
Cohérence orientée client (2)
–  Ecritures monotones
"  Deux écritures successives sur D
–  Précéde...
SystèmesDistribués
237
Cohérence orientée client (3)
! Cohérence Ecriture-Lecture (Read Your
Writes)
–  Processus modifie ...
SystèmesDistribués
238
Cohérence orientée client (4)
–  Cache utilisé pour la lecture et non l'écriture
–  Rafraichissemen...
SystèmesDistribués
239
Cohérence orientée client (5)
! Cohérence Lecture-Ecriture
–  Writes Follows Reads
"  Processus lit...
SystèmesDistribués
240
Cohérence orientée client (6)
SystèmesDistribués
241
Gestion de la cohérence (1)
! Stratégies de réplication
–  Copies permanentes
"  Nombre, localisati...
SystèmesDistribués
242
Gestion de la cohérence (2)
–  Copies temporaires coté client
"  Utilisation de caches
! Placement
...
SystèmesDistribués
243
Gestion de la cohérence (3)
! Maintien de la cohérence
–  Techniques de propagation
"  Par invalida...
SystèmesDistribués
244
Gestion de la cohérence (4)
! Décision de MAJ
–  Qui décide de faire la propagation
"  Serveur
–  M...
SystèmesDistribués
245
Protocole de la cohérence (1)
! Objectif
–  Mise en oeuvre d'un modèle
! Choix de la technique de r...
SystèmesDistribués
246
Protocole de la cohérence (2)
! Mise en oeuvre
–  Par serveur
"  Primaire
"  Secondaire
–  Quorum e...
Prochain SlideShare
Chargement dans…5
×

cours systeme distribué

3 637 vues

Publié le

Cours systeme distribué (cours fourni par mon collègue Mouez bel hajd Hmida)

Publié dans : Formation
0 commentaire
8 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 637
Sur SlideShare
0
Issues des intégrations
0
Intégrations
233
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
8
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

cours systeme distribué

  1. 1. Moez Ben Haj Hmida 3ème Ingénieurs en Informatique Module : Systèmes distribués Université privée SESAME
  2. 2. SystèmesDistribués 2 ARCHITECTURES SÉQUENTIELLES ET PARALLÈLES Partie I
  3. 3. SystèmesDistribués 3 Systèmes Centralisés ! Caractéristiques !  Architecture o  1 Processeur –  Une horloge commune pour les processus o  1 Mémoire centrale –  Un espace d’adressage commun pour les processus !  Caractéristiques du système o  Centralisé o  Etat global, instantané et unique !  Ressources o  Localisées sur la même machine o  Accessibles localement aux processus
  4. 4. SystèmesDistribués 4 Systèmes Parallèles ! Systèmes parallèles !  Ensemble d’éléments de calcul !  Qui peuvent communiquer et coopérer !  Pour résoudre rapidement de grands problèmes !  Architecture o  N Processeurs (cœurs) o  Mémoire centrale –  Mémoire partagée "  Communication par la mémoire –  Mémoire distribuée "  Communication via e réseau
  5. 5. SystèmesDistribués 5 Mémoire partagée ! Processus partagent une mémoire !  Espace d’adressage commun pour les processus !  Accès direct à la mémoire (adresse physique) !  Besoin de o  Synchronisations o  Communications
  6. 6. SystèmesDistribués 6 Synchronisation ! Relations de précédence entre processus !  P1 doit s’exécuter avant P2 !  P1 attend P2 avant de s’exécuter !  Partage de ressources o  P1 précède P2 dans l’utilisation de R !  Aucune communication réelle entre les processus o  Pas d’échange de données
  7. 7. SystèmesDistribués 7 Communications (1) ! Communication !  Permettre à 2 ou plusieurs processus de s’échanger de l’information !  Définir des mécanismes de communication o  IPC –  Inter Process Communication "  Définis par le System V d’Unix
  8. 8. SystèmesDistribués 8 Communications (2) ! Eléments de base !  Un émetteur !  Un récepteur !  Types de communication o  Emission bloquante ou non bloquante o  Réception bloquante ou non bloquante
  9. 9. SystèmesDistribués 9 Communications (3) ! Types d’IPC !  IPC dits classiques o  Signaux, Tubes, Fichiers, Sockets !  IPC avancés o  File de messages o  Mémoire partagée
  10. 10. SystèmesDistribués 10 Communications (4) ! Supports de communication !  Espace partagé o  Mémoire (Tampon ou Buffer) o  Processus communicants sur la même machine o  Support de communication fait partie de l’espace des processus o  Modèle Producteur/Consommateur –  L’un écrit une donnée et l’autre la lit –  Modèle synchrone ou asynchrone !  Boîte aux Lettres o  Espace partagé –  File de messages (exemple: mail)
  11. 11. SystèmesDistribués 11 Communications (5) !  Tubes Nommés ou Non nommés (Pipes) o  Canal de communication virtuel o  Communication à travers le tube –  Fonctions Read et Write o  Relation un peu particulière –  Communication entre père et fils o  Peuvent engendrer des blocages, voire des deadlocks o  Fonctions spécifiques –  pipe(), read(), write(), mknod()
  12. 12. SystèmesDistribués 12 Communication (6) ! Communication par signaux !  Signal o  Interruption logicielle –  Peut être programmée o  Informer un processus sur un événement –  Pas de communication réelle "  Envoi de la valeur du signal uniquement o  Son arrivée déclenche généralement une action (il peut être aussi ignoré) –  Voir Signaux sous Unix
  13. 13. SystèmesDistribués 13 Communication (7) ! Communication par sémaphore !  Pas de communication réelle o  Plutôt de la synchronisation o  Donnée communiquée –  Valeur du sémaphore o  Principe +/- équivalent aux signaux !  Communication par tube o  Communication unidirectionnelle o  Processus sur la même machine
  14. 14. SystèmesDistribués 14 Systèmes Parallèles et Systèmes Distribués ! Systèmes parallèles !  Ensemble d’éléments de calcul !  Qui peuvent communiquer et coopérer !  Pour résoudre rapidement de grands problèmes ! Systèmes distribués !  Ensemble de processeurs autonomes !  Qui ne se partagent pas de mémoire primaire !  Mais qui coopèrent par envoi de messages à travers un réseau de communication
  15. 15. SystèmesDistribués 15 Systèmes Parallèles / Systèmes Distribués ! Pas parallèles, pas distribués !  PCs ou stations de travail (qui ne peuvent pas communiquer) ! Parallèles, pas distribués !  Machines vectorielles !  Machines multiprocesseurs à mémoire partagée (SMP) ! Distribués, pas parallèles !  Réseau de stations large distance (communications trop lentes) ! Parallèles et distribués !  Réseau de stations de travail connectées à un réseau local/ spécialisé !  CLUMPS
  16. 16. SystèmesDistribués 16 ARCHITECTURES ET SYSTÈMES DISTRIBUÉS Partie II
  17. 17. SystèmesDistribués 17 Pourquoi le réparti (1) ! Evolution technologique !  Machines o  Plus puissantes –  Calcul et espace o  Plus légères –  Mobiles !  Réseaux o  De plus en plus performants (débit) et de moins en moins chers
  18. 18. SystèmesDistribués 18 Pourquoi le réparti (2) ! Informatique actuelle !  Répartie o  De moins en moins de centralisation !  Mobile o  Ressources physiques o  Ressources logiques !  Pervasive (contextuel, ubiquitaire) o  Sensible au contexte –  Matériel et espace
  19. 19. SystèmesDistribués 19 Systèmes Répartis (1) ! Présentation générale !  Ensemble d’éléments reliés par un réseau de communication o  Calcul o  Stockage o  Electroniques –  Capteurs, actionneurs, satellites, … !  Point de vue utilisateur o  Une seule machine virtuelle
  20. 20. SystèmesDistribués 20 Systèmes Répartis (2) !  Fonctionnement collaboratif o  Réalisation d’une tâche commune –  Collaboration entre les machines !  Architecture o  Plusieurs processeurs –  Pas d’horloges communes o  Plusieurs mémoires –  Pas de mémoire partagée o  Réseau d’interconnexion et de communication
  21. 21. SystèmesDistribués 21 Caractéristiques (1) ! Absence d’état global !  Pas de référentiel temporel commun o  Plusieurs horloges !  Pas de référentiel spatial commun o  Plusieurs mémoires ! Existence d’un réseau !  Hors système d’exploitation !  Influe sur le comportement du système
  22. 22. SystèmesDistribués 22 Caractéristiques (2) ! Architecture matérielle !  Multi-processeurs à mémoire partagée !  Clusters (grappes) d’ordinateurs o  Ordinateurs puissants et indépendants !  PCs en réseau ! Architecture système !  Entités logicielles séparées s’exécutant en parallèle
  23. 23. SystèmesDistribués 23 Exemples (1) ! Serveurs de BD ou de fichiers !  Fichiers stockés sur un serveur !  Accessibles de n’importe quelle machine o  Fichiers virtuels accessibles localement ! Web !  Accès distant à de l’information disséminée à travers le monde !  Transparence de localisation
  24. 24. SystèmesDistribués 24 Exemples (2) ! Super-calculateur !  Machine virtuelle o  Regroupe plusieurs machines distantes –  Utilisée pour le calcul scientifique ou calcul intensif ! Serveur d’impression !  Pool d’imprimantes o  Accessibles de n’importe où –  Imprimante virtuelle
  25. 25. SystèmesDistribués 25 Exemples (3) BitTorrent
  26. 26. SystèmesDistribués 26 Propriétés (1) ! Disponibilité !  Prêt à l’utilisation o  Est toujours accessible ! Fiabilité !  Continuité du service o  Utilisation de la redondance (réplication)
  27. 27. SystèmesDistribués 27 Propriétés (2) ! Résistance aux pannes !  Tolère les défaillances de ses composants o  Cas particulier du réseau ! Sécurité !  Possibilités de combiner plusieurs techniques de sécurité o  Gestion plus complexe
  28. 28. SystèmesDistribués 28 Propriétés (3) ! Hétérogénéité !  Avantages o  Utiliser (partager) des composants de différentes natures –  Machines, Operating Systems, Environnements de programmation, … o  Inconvénients –  Complexe à gérer –  Mise en place d’outils pour la gérer
  29. 29. SystèmesDistribués 29 Propriétés (4) ! Performances !  Système naturellement parallèle et concurrent o  Autonomie des composants ! Transparence !  Propriété fondamentale o  Sans cet aspect, un système ne peut pas être qualifié de réparti –  Tout cacher à l’utilisateur
  30. 30. SystèmesDistribués 30 Transparence (1) ! Présentation !  Propriété fondamentale o  Cacher à l’utilisateur la répartition –  Donner l’illusion d’avoir une seule machine !  Existe à plusieurs niveaux o  8 niveaux selon la norme RM-ODP –  Reference Model of Open Distributed Processing
  31. 31. SystèmesDistribués 31 Transparence (2) ! Niveaux !  Transparence d’accès o  Accès unique pour les ressources distantes et locales –  Pour l’utilisateur, l’opération d’accès est la même o  Accès aux données indépendamment de leurs formats de représentation –  Accès à des données hétérogènes "  Cacher cette hétérogénéité à l’utilisateur
  32. 32. SystèmesDistribués 32 Transparence (3) !  Transparence de localisation o  Pas de référence sur la localisation physique des données !  Transparence de concurrence o  Exécution concurrente et parallèle de processus –  Un seul processus pour l’utilisateur !  Transparence de réplication o  Répliquer (dupliquer) des données et/ou des processus
  33. 33. SystèmesDistribués 33 Transparence (4) !  Transparence de mobilité o  Déplacer des composants matériels ou logiciels !  Transparence de panne o  L’utilisateur ne se rend pas compte des pannes –  Sauf cas très particuliers !  Transparence de performances o  Reconfiguration du système
  34. 34. SystèmesDistribués 34 Transparence (5) !  Transparence d’échelle (Scalability) o  Supporter, sans difficultés majeures, l’augmentation de la taille du système –  Composants physiques –  Nombre de processus –  … o  Système ouvert ! Transparences minimales !  Accès, Localisation, Concurrence
  35. 35. SystèmesDistribués 35 Problèmes (1) ! Pas d’état global !  Difficulté de connaître l’état global d’un système distribué à un instant donné o  Système réparti={ Sites } –  Chacun connaît son état mais pas celui des autres (état local) ! Cas d’un serveur centralisé !  Panne du serveur o  Système non opérationnel
  36. 36. SystèmesDistribués 36 Problèmes (2) ! Sans serveur centralisé !  Solution entièrement distribuée o  Plus complexe à gérer ! Dépendance / réseau !  Réseau fonctionne normalement o  Système opérationnel et performant !  Réseau défaillant o  Dégradation des performances ou arrêt total du système
  37. 37. SystèmesDistribués 37 Problèmes (3) ! Asynchronisme !  Au niveau communication o  Délai de transmission d’un message –  Pas de borne limite !  Au niveau exécution o  Durée d’exécution d’une application ou d’un processus –  Exécution locale, distante ou distribuée "  Difficile de la quantifier
  38. 38. SystèmesDistribués 38 Problèmes (4) ! Administration !  Plus complexe qu’en centralisé o  Systèmes d’administration différents ! Taille du système !  Plus complexe qu’en centralisé o  Nombre de composants –  Plus grande hétérogénéité o  Dispersion géographique –  Très large (mondiale)
  39. 39. SystèmesDistribués 39 Problèmes (5) ! Vulnérabilité !  Multiplicité des niveaux de panne o  Matériel o  Logiciel o  Réseau ! Sécurité !  Sujet à des attaques o  Existence de plusieurs points d’accès
  40. 40. SystèmesDistribués 40 COMMUNICATION DANS LES SYSTÈMES DISTRIBUÉS Partie III
  41. 41. SystèmesDistribués 41 Distribué vs Centralisé ! Pas de partage !  Processeurs autonomes !  Mémoire distribuée !  OS indépendants ! Réseaux de communication !  Étendre les techniques de communication du centralisé vers le distribué
  42. 42. SystèmesDistribués 42 Réseau de communication !  Processus sur des machines distantes o  Un processus émetteur et un processus récepteur !  Réseau pour assurer la communication o  Partie physique et partie logique !  Primitives de communication o  Send() pour l’émetteur o  Receive() pour le récepteur !  Synchrone ou asynchrone !  Communication par MESSAGE
  43. 43. SystèmesDistribués 43 Communication par message (1) ! Type RDV (Rendez-Vous) !  Processus émetteur o  Send(Nom du récepteur , message) !  Processus récepteur o  Receive(Nom de l’émetteur , adresse de zone) !  Modèle fortement synchrone o  Emetteur et Récepteur présents au même instant o  Entraîne un phénomène d’attente qui peut être infini
  44. 44. SystèmesDistribués 44 Communication par message (2) !  Utilise un adressage symétrique o  L’émetteur doit identifier le récepteur o  Le récepteur doit identifier l’émetteur !  Communication o  Sera réalisée lors du RDV –  Stockage de la donnée envoyée dans la zone spécifiée par la primitive Receive
  45. 45. SystèmesDistribués 45 Communication par message (3) !  Type asynchrone o  Objectif –  Réduire l’aspect fortement synchrone du RDV o  Utiliser un adressage asymétrique –  L’émetteur identifie le récepteur –  Le récepteur n’identifie pas de manière explicite l’émetteur "  Identification inconnue (émetteur quelconque) "  Send(nom récepteur , message) "  Receive(&x , adresse de zone) –  L’identité de l’émetteur ne sera connue que quand la communication aura été réalisée –  Relâchement de la contrainte synchrone du coté du récepteur
  46. 46. SystèmesDistribués 46 Communication par socket (1) ! Communication par pipe !  Processus sur la même machine ! Communication entre processus distants !  Utilisation de sockets o  Mécanisme de communication entre processus s’exécutant sur des machines distantes o  Communication bidirectionnelle o  Communication interprocessus, inter-machines via un réseau
  47. 47. SystèmesDistribués 47 Communication par socket (2) ! Utilisation du modèle Client/Serveur !  Processus associé au serveur o  S’exécute, de manière continue, en tâche de fond (background) o  Attend des requêtes locales ou distantes o  Exécute les requêtes et renvoi les résultats !  Clients émettent des requêtes vers le serveur !  Nécessité d’utiliser des protocoles o  TCP/IP, UDP/IP, …
  48. 48. SystèmesDistribués 48 Communication par socket (3) ! Réseau vs Utilisateur !  Schéma Client/Serveur o  Même machine o  Machines différentes –  Client demande un service fournit par un serveur sur une autre machine "  Identifier le service: http://... "  Conversion en une adresse IP interprétable par les protocoles du réseau (DNS)
  49. 49. SystèmesDistribués 49 Communication par socket (4) –  Serveur peut implémenter plusieurs services "  Adresse IP nécessaire mais non suffisante "  Identifier le service au moyen d’un port (permet d’invoquer un processus spécifique) Schéma client-serveur : Appel synchrone requête-réponse Source: S. Krakowiak
  50. 50. SystèmesDistribués 50 Source: S. Krakowiak Sockets (1)
  51. 51. SystèmesDistribués 51 Sockets (2)
  52. 52. SystèmesDistribués 52 Sockets (3) ! Introduction !  Utilité des Sockets o  Interface pour faciliter l’utilisation des protocoles de transport TCP et UDP o  Crée un lien entre une connexion et un port –  Permet de désigner une connexion (coté client ou coté serveur) en l’associant à un numéro de port –  Communication à travers cette connexion
  53. 53. SystèmesDistribués 53 Sockets (4) !  Sockets et réseau o  Interface d’accès –  D’un hôte vers les interfaces de transport TCP et UDP o  TCP (mode connecté) –  Protocole orienté connexion –  Echange entre les deux entités reliées par la connexion "  Flot d’octets –  Contrôle sur la transmission (Ack) o  UDP (mode non connecté) –  Protocole non orienté connexion –  Messages échangés individuellement "  Envoi sans prévenir "  Réception sans prévenir –  Données envoyés sous forme de bloc "  Datagramme
  54. 54. SystèmesDistribués 54 Sockets (5) Source: S. Krakowiak
  55. 55. SystèmesDistribués 55 Sockets (6) ! Sockets coté serveur !  Serveur o  Fournit un ou plusieurs services à des clients –  Lancement du serveur et attente de demandes (phase d’écoute) –  Traite les demandes de service –  Rend un résultat (éventuellement) –  Attente et traitement sont séparés "  Possibilité d’attendre de nouvelles requêtes pendant le traitement des courantes
  56. 56. SystèmesDistribués 56 Source: S. Krakowiak
  57. 57. SystèmesDistribués 57 Source: S. Krakowiak
  58. 58. SystèmesDistribués 58 Source: S. Krakowiak
  59. 59. SystèmesDistribués 59 Source: S. Krakowiak
  60. 60. SystèmesDistribués 60 Sockets (7) ! Sockets coté client !  2 étapes sont nécessaires !  Hypothèses o  Adresse du serveur connue o  Connaissance du numéro de port d’une socket coté serveur
  61. 61. SystèmesDistribués 61 Source: S. Krakowiak
  62. 62. SystèmesDistribués 62 Source: S. Krakowiak
  63. 63. SystèmesDistribués 63 Sockets (8) ! Communication avec les sockets !  Etablissement d’une connexion !  Client et serveur disposent d’un descripteur sur leurs connexions o  Descripteur identique à celui d’un fichier !  Utilisation avec read et write !  Fermeture avec close
  64. 64. SystèmesDistribués 64 Protocoles (1) ! Protocoles de la couche contrôle !  UDP o  User Data Protocol o  Entête minimale o  Livraison des données non fiable o  Mode non connecté o  Unité de transfert –  Message (bloc ou datagramme) o  Pas de regroupement ou de découpage de messages
  65. 65. SystèmesDistribués 65 Protocoles (2) !  TCP o  Transmission Control Protocol o  Ajout d’informations de contrôle dans le paquet à transmettre o  Livraison fiable des données o  Nécessité d’établir une connexion avant la transmission o  Unité de transfert –  Flot d’octets non structurés
  66. 66. SystèmesDistribués 66 Communication TCP (1) Source: Stépahne Vialle
  67. 67. SystèmesDistribués 67 Communication TCP (3) !  Serveur attend des demandes de connexion !  Client connecte sa socket au serveur et sur un de ses ports !  Serveur détecte la demande de connexion !  Ouverture automatique d’une nouvelle socket
  68. 68. SystèmesDistribués 68 Communication TCP (4) !  Serveur crée un processus pour dialoguer avec le client !  Nouveau processus continue le dialogue sur la nouvelle socket !  Serveur peut attendre, en parallèle, de nouvelles demandes !  Fermeture obligatoire de toutes les sockets
  69. 69. SystèmesDistribués 69 Mode TCP
  70. 70. SystèmesDistribués 70 Mode UDP
  71. 71. SystèmesDistribués 71 Bibliothèques ! Windows !  winsock.lib !  winsock.h !  winsock.dll ! Unix !  stdio.h – sys/types.h – sys/socket.h netinet/in.h – netdb.h
  72. 72. SystèmesDistribués 72 Modèle RPC (1) ! Modèle appel de procédure !  Modèle fondamental en programmation o  Utilisé pour structurer une application –  Application = {Procédures, Fonctions, Objets, …} o  Liens entre éléments d’une application –  Réalisés grâce à la notion d’Appel "  Appel de procédure, de fonction "  Invocation de méthode o  Contrainte –  Composants sur la même machine
  73. 73. SystèmesDistribués 73 Modèle RPC (2) ! Modèle pour systèmes répartis !  Modèle d’appel classique inadapté o  Appelant et appelé sont sur des machines distantes –  Pas d’espace commun –  Hétérogénéité des machines "  Matériel, OS, Environnements de programmation, Réseaux, etc.
  74. 74. SystèmesDistribués 74 Modèle RPC (3) !  Définir un nouveau modèle o  Caractéristiques –  Transparent par rapport à l’utilisateur "  Lui donner l’illusion que l’appelant et l’appelé sont sur la même machine –  Prendre en charge les problèmes d’hétérogénéité –  Fonctionnement identique au cas centralisé –  Faire abstraction du protocole réseau utilisé Modèle RPC (Remote Procedure Call)
  75. 75. SystèmesDistribués 75 Modèle RPC (4) ! Principes du modèle !  Infrastructure C/S o  Plus grande hétérogénéité o  Plus grande portabilité o  Plus grande flexibilité d’une application o  Invoque une procédure distante –  Fonctionnement identique à celui d’un appel local o  Fonctionnement synchrone –  Client attend une réponse du serveur
  76. 76. SystèmesDistribués 76 Modèle RPC (5)
  77. 77. SystèmesDistribués 77 Appel Local Préparer le message d’appel distant (Emballer paramètres) Envoyer message Recevoir message Déballer paramètres Exécution et renvoi d’un résultat Création processus / thread pour l’appel client Emballer résultats Réveil Attente Déballer résultats Retour Client Talon Client STUB Talon Serveur SKELETON Serveur Attente Reprise
  78. 78. SystèmesDistribués 78 Modèle RPC (6)
  79. 79. SystèmesDistribués 79 Modèle RPC (7) Source: Martin Quinson (ESIAL)
  80. 80. SystèmesDistribués 80 Modèle RPC (8) Source: Austran 99
  81. 81. SystèmesDistribués 81 Modèle RPC (9) ! Mise en œuvre !  Gère l’hétérogénéité des environnements d’exécution !  Assure une certaine sécurité o  Authentification o  Confidentialité des échanges !  Gère les problèmes de défaillances o  Client, Serveur, Réseau
  82. 82. SystèmesDistribués 82 Modèle RPC (10) ! Limites du modèle !  Passage de paramètres par référence !  Gestion des pannes o  Client, Serveur, Réseau !  Représentation des données o  Hétérogénéité entre client et serveur !  Temps d’exécution plus long !  Sécurité
  83. 83. SystèmesDistribués 83 Modèle RMI (1) ! Présentation !  Extension du modèle RPC à l’objet o  Modèle RPC –  Basé sur l’unité de programmation PROCEDURE o  Modèle RMI –  Remote Method Invocation –  Modèle permettant de prendre en charge l’invocation de méthodes à distance "  Problème de l’instanciation d’une classe "  Référence de l’objet instancié
  84. 84. SystèmesDistribués 84 Modèle RMI (2) ! Limites du modèle RPC !  Applications statiques o  Pas de création dynamique o  Pas de possibilité de redéploiement !  Pas d’appels par référence !  Modèle fortement synchrone !  Pas de persistance de données o  Sauvegarde explicite dans des fichiers
  85. 85. SystèmesDistribués 85 Modèle RMI (3) ! Solutions !  Utiliser des objets répartis à la place des procédures o  CORBA, JAVA RMI, … !  Bus à messages o  MOM (Message Oriented Middleware) o  MQSeries, MSMQ, TIBCO, … o  JMS (Java Message Service) –  Envoi et réception de messages asynchrones
  86. 86. SystèmesDistribués 86 Modèle RMI (4) !  Composants répartis o  EJB, .NET, … ! Objet en programmation !  Elément fondamental o  Référence –  Comment accéder à un objet distant "  Site de référence, Numéro du port, Localisation interne du serveur, …
  87. 87. SystèmesDistribués 87 Modèle RMI (5) ! Structure du modèle !  Modèle en couches o  Souche (Stub) o  Squelette (Skeleton) o  Couche de traitement des références distantes o  Couche transport
  88. 88. SystèmesDistribués 88 Modèle RMI (6) !  Transfert par sérialisation o  Sérialisation –  Conversion de l’état d’un objet en une forme transportable (chaîne de caractères) –  Serialize o  Désérialisation –  Récupérer un objet sérialisé à partir de la chaîne de caractères générée par le processus de sérialisation –  Unserialize o  Mécanisme utilisé par JAVA
  89. 89. SystèmesDistribués 89 Modèle RMI (7) Source: Richard GRIN (Uni. Nice)
  90. 90. SystèmesDistribués 90 Modèle RMI (8) ! Couches du modèle !  STUB (Souche) o  Représentant local de l’objet distant –  Emballage (Marshalise) des paramètres des méthodes distantes "  Transformation en flots de données –  Déballage (Démarshalize) des résultats –  Utilise le principe de sérialisation
  91. 91. SystèmesDistribués 91 Modèle RMI (9) !  SKELETON (Squelette) o  Déballe les paramètres de la méthode invoquée o  Appel réel de la méthode invoquée o  Emballe les résultats retournés par la méthode invoquée
  92. 92. SystèmesDistribués 92 Modèle RMI (10) !  Couche Références distantes o  Traduction de la référence locale au stub en une référence à un objet distant o  Référence persistante vers des objets distants –  Méthode Rmiregistry !  Couche transport o  Connexion avec le site distant o  Ecoute et réception des appels
  93. 93. SystèmesDistribués 93 JAVA RMI (1) ! Objectif !  Ecrire des applications distribuées ! RMI !  Extension du langage Java o  Un objet sur une JVM peut avoir une référence sur un autre objet instancié dans une autre JVM
  94. 94. SystèmesDistribués 94 MyRemoteObject o = … o.myMethod Celui là !
  95. 95. SystèmesDistribués 95 JAVA RMI (2) ! Problèmes !  Tous les objets, d’une machine, sont ils accessibles par les autres machines ? !  Toutes les méthodes peuvent elles être appelées ? !  Comment récupérer une référence sur un objet distant ? !  Problématiques liées au réseau
  96. 96. SystèmesDistribués 96 JAVA RMI (3) ! Quelques solutions !  Déclarer les objets appelés à distance o  Sous-classe de java.rmi.RemoteObject !  Déclarer les méthodes appelées à distante o  Déclaration d’une interface pour les appels distants
  97. 97. SystèmesDistribués 97 JAVA RMI (4) !  Toutes les méthodes distantes peuvent générer des exceptions o  java.rmi.RemoteException ! Exemple !  Copie d’un fichier de M1 vers M2 o  Lecture dans M1 o  Stockage dans un tampon
  98. 98. SystèmesDistribués 98 JAVA RMI (5) o  Appeler une méthode d’un objet receveur distant –  Passer le tampon en paramètre o  Objet receveur écrit ce paramètre dans un fichier sur son SGF ! Accès à un objet distant !  Créateur de l’objet o  Externaliser au moins un objet en lui donnant un nom –  static void Naming.rebind(String,Remote)!
  99. 99. SystèmesDistribués 99 JAVA RMI (6) !  Utilisateur de l’objet o  Récupère une référence avec ce nom –  static Object Naming.lookup(String)
  100. 100. SystèmesDistribués 100 JAVA RMI (7) ! Conclusion !  RMI o  Extension distribuée de Java o  Simple o  Préserve toutes les qualités du langage !  Problèmes o  Utilisable uniquement de Java à Java o  Peu performant o  Ne supporte pas la scalability (échelle)
  101. 101. SystèmesDistribués 101 Algorithmique Répartie Partie III
  102. 102. SystèmesDistribués 102 Temps et Ordre dans les systèmes réparties
  103. 103. SystèmesDistribués 103 Ordonnancement (1) ! Objectifs !  Définir un ordre entre les événements d’un système o  Nécessaire pour prendre des décisions –  Allocation, Préemption, … ! Cas centralisé !  Ordonnancement toujours possible o  Horloge physique unique –  Dates différentes pour 2 événements
  104. 104. SystèmesDistribués 104 Ordonnancement (2) ! Contraintes en réparti !  Absence de mémoire commune o  Support d’un état –  Espace de stockage de l’état !  Absence d’horloge commune o  Impossibilité d’ordonner o  Difficulté de définir un temps unique !  Asynchronisme des communications !  Asynchronisme des traitements
  105. 105. SystèmesDistribués 105 Ordonnancement (3) ! Utilité !  Raisonnement sur o  Système o  Application !  Définir et vérifier des propriétés o  Vérifier ces propriétés sur des états –  Suivre leur évolution !  Coordination o  Définir un ordre entre événements
  106. 106. SystèmesDistribués 106 Propriétés ! Objectif : Vérifier l’état d’un système ! Classes de propriétés !  Sûreté (Safety) o  Vérifier qu’un événement n’arrivera jamais o  Evénement non désirable –  Exclusion mutuelle –  Incohérence de données –  Deadlock !  Vivacité (Liveness) o  Souhaiter l’arrivée d’un événement o  Evénement désirable –  Message délivré à son destinataire –  Fin d’un algorithme –  Sortie d’une section critique –  Libération d’une ressource
  107. 107. SystèmesDistribués 107 Modèles temporels (1) ! Modèle asynchrone !  Modéliser le monde réel o  Prendre en compte l’asynchronisme !  Caractéristiques o  Le plus faible mais le plus fiable o  Impose des contraintes relativement fortes –  N’offre aucune borne temporelle –  Possibilités de relaxer les contraintes du modèle
  108. 108. SystèmesDistribués 108 Modèles temporels (2) !  Principes o  Communication par messages –  Un émetteur et un récepteur o  Evénements possibles –  Evénements locaux "  Evénement de calcul (pas de communication) "  Emission de message "  Réception de message o  Absences de bornes –  Transmission d’un message –  Vitesse d’exécution des processus
  109. 109. SystèmesDistribués 109 Modèles temporels (3)
  110. 110. SystèmesDistribués 110 Communication (1) ! Propriétés d’une communication !  Emission d’un message o  Finit toujours par arriver –  Temps non borné –  Possibilité de détecter sa non réception "  Retransmission(s) jusqu’à ce qu’il arrive o  Pas d’altération (non modifié) o  Hypothèses sur le canal –  FIFO "  Ordre de réception = Ordre d’émission
  111. 111. SystèmesDistribués 111 Communication (2) "  Instants importants pour un message –  Délivrance –  Réception
  112. 112. SystèmesDistribués 112 Evénements (1) ! Exécution d’un processus –  Suite d’événements "  Locaux –  Calcul –  Communication "  Ordonnés localement –  Horloge locale –  Trace ou historique
  113. 113. SystèmesDistribués 113 Evénements (2) ! Synchronisation de processus !  2 suites d’événements distinctes !  Imposer un ordre sur l’ensemble des événements o  Dire si un événement Ei précède Ej ou inversement –  Allocation de ressources –  Utilisation d’une ressource partagée
  114. 114. SystèmesDistribués 114 Evénements (3) ! Problématique de la datation !  Centralisé o  Aucun problème –  Même horloge "  Donc deux dates différentes !  Réparti o  Sémantique de l’opérateur précède ? –  Existence d’horloges locales ! Solution !  Principe de causalité
  115. 115. SystèmesDistribués 115 Causalité (1) ! Principe !  Cause précède toujours l’effet !  Intérêt o  Définir une relation de précédence particulière –  Précédence causale ! Application au réparti !  Processus o  Ordonnancement naturel –  Effet sur les événements postérieurs
  116. 116. SystèmesDistribués 116 Causalité (2) !  2 Processus o  Emission précède toujours la réception !  Composition o  Transitivité de la relation ! Définition !  Par Lamport (78) !  Relation de précédence causale o  e e’
  117. 117. SystèmesDistribués 117 Causalité (3)
  118. 118. SystèmesDistribués 118 Causalité (4) ! Propriétés !  Relation potentielle (par négation) o  Sémantique particulière –  Causalité n’est pas violée –  e cause potentielle de e’ –  Il n’est pas sûr que e soit la cause de e’ "  Problème de sémantique (interprétation) –  e’ ne peut en aucun cas être la cause de e "  Certitude –  Le futur n’agit pas sur le passé
  119. 119. SystèmesDistribués 119 Causalité (5) ! Dépendance et indépendance !  Définition o  Passé ou historique d’un événement o  hist(e’) = {e} | e e’ ∪ {e’} !  Exemples o  e e’ –  e peut influencer e’ o  ! (e e’) –  e ne peut pas influencer e’ o  ! (e e’) et ! (e’ e) –  e et e’ sont causalement indépendants "  e || e’
  120. 120. SystèmesDistribués 120 Problème de Datation (1) ! Problématique !  Pas de système central o  Absence de vue globale o  Etats partiels !  Comment obtenir une vue globale ? o  Solution centralisée –  Définir un observateur extérieur au système "  Le mettre au courant de tous les événements
  121. 121. SystèmesDistribués 121 Problème de Datation (2)
  122. 122. SystèmesDistribués 122 Observations (1) ! Propriété d’une observation !  Validité o  L’observation doit respecter la causalité –  e e’ ⇒ Obs(e) Obs(e’)
  123. 123. SystèmesDistribués 123 Observations (2)
  124. 124. SystèmesDistribués 124 Observations (3) ! Approche !  Temps de transmission borné (α) !  Existence d’une horloge (H) !  Forme d’un message émis o  Message estampillé –  Message plus une estampille (marque, signature) "  (m , H(m)) "  m : message "  H(m): date de transmission de m (estampille)
  125. 125. SystèmesDistribués 125 Observations (4) !  Instant de délivrance o  Instant t o  Délivrer tous les messages avec –  Estampille < t- α o  Délivrance selon l’ordre des estampilles ! Condition de validité faible !  e e’ ⇒ H(e) < H(e’)
  126. 126. SystèmesDistribués 126 Horloges logiques (1) ! Définies par Lamport ! But !  Dater des événements o  Assurer la condition de validité o  Déterminée par une consultation locale ! Principe !  Horloge logique (scalaire) sur chaque site !  Compteur : Hi
  127. 127. SystèmesDistribués 127 Horloges logiques (2) –  Evénement sur site i "  Daté par H(e) = Hi
  128. 128. SystèmesDistribués 128 Horloges logiques (3) ! Algorithmique !  Init o  Hi = 0 pour tout i !  Evénement e local o  Hi = Hi + 1 (sauf pour la réception) o  Dater e avec Hi o  Emission d’un message m –  Estampiller m "  ( m , Hi(m) )
  129. 129. SystèmesDistribués 129 Horloges logiques (4) o  Réception d’un message par Pj –  Hj = max ( Hj , Hi ) + 1 –  Dater la réception avec la nouvelle valeur de Hj
  130. 130. SystèmesDistribués 130 Horloges logiques (5) ! Ordre total (relation ! ) !  2 événements o  a sur Si et b sur Sj o  a ! b ssi –  (H(a) < H(b)) ou (H(a) = H(b) et i<j) !  Exemple d’observation o  e11 e21 e22 e31 e12 e23 e32 e13 e24 e25 e14
  131. 131. SystèmesDistribués 131 Horloges vectorielles (1) ! Problèmes des horloges logiques !  Ordre artificiel sur les événements !  Incohérence vis-à-vis de la relation FIFO ! Solution !  Les horloges vectorielles ou horloges de Mattern & Fidge
  132. 132. SystèmesDistribués 132 Horloges vectorielles (2) ! Principe !  Horloge vectorielle / Site !  Taille du vecteur d’horloge o  Nombre de sites !  But o  Dater les événements o  Identique aux horloges logiques o  Plus riches en informations
  133. 133. SystèmesDistribués 133 Horloges vectorielles (3) ! Fonctionnement !  Associer un vecteur Vi à chaque site Pi !  Init o  Vi = (0, … , 0) !  Evénement local à Pi o  Vi[i] = Vi[i]+1 !  Message (émis) m estampillé par Vm o  Vm = Vi de l’émetteur !  Réception d’un message (m, Vm) par Pi o  Vi[i] = Vi[i]+1 o  Vi[j] = max(Vi[j], Vm[j]), pour j = 1..n, j ≠ i
  134. 134. SystèmesDistribués 134
  135. 135. SystèmesDistribués 135 Horloges matricielles (1) ! Synthèse !  Horloge logique ou scalaire o  Réduite à un nombre –  Ce que Pi connaît du système (Hi) !  Horloge vectorielle o  Vecteur d’horloges scalaires –  Ce que Pi connaît de Pj (Hi[j]) !  Horloges matricielles o  Matrice d’horloges –  Ce que Pi connaît de ce que Pj connaît de Pk (Hi[j,k])
  136. 136. SystèmesDistribués 136 Horloges matricielles (2) ! Principe !  Horloge matricielle / Site o  nxn HMi !  Evénement ei de Pi o  Daté par la valeur courante de HMi !  Envoi de message o  Estampillé par HMi ! Sémantique !  Interprétation de HMi[j,k] o  Nombre de messages de Pj vers Pk dont Pi a connaissance
  137. 137. SystèmesDistribués 137 Horloges matricielles (3) ! Règles de gestion !  Evénement local à Pi o  HMi[i,i] ++ !  Envoi de message vers Pj o  HMi[i,i] ++ o  HMi[i,j] ++
  138. 138. SystèmesDistribués 138 Horloges matricielles (4) !  Réception de (m,Em) par Pj o  Délivré que si tous les messages qui sont causalement antérieurs à lui ont été délivrés –  Pour tout k ≠ i,j "  Em[k, j] = HMj [k, j] o  Délivrance et MAJ horloges –  HMj [j, j] ++ –  Pour tout k ≠ i,j et pour tout l ≠ i "  HMj [k,l] = max(HMj[k,l], Em[k,l])
  139. 139. SystèmesDistribués 139
  140. 140. SystèmesDistribués 140 Asynchronisme (1) ! Problématique !  Comment délivrer un ensemble d’éléments dans un certain ordre o  Exemple –  File de messages ! Solution !  Propriété d’un message reçu o  Stabilité –  Pas de message d’estampille inférieure
  141. 141. SystèmesDistribués 141 Asynchronisme (2) ! Règle de délivrance !  Ne délivrer un message que s’il est stable
  142. 142. SystèmesDistribués 142 Diffusion causale (1) ! Principe !  Diffusion d’un message à un ensemble de processus destinataires o  Diffusion générale (broadcast) o  Diffusion sélective (multicast) ! Intérêt !  Très utile en programmation répartie o  Diffusion d’un état
  143. 143. SystèmesDistribués 143 Diffusion causale (2) ! Problèmes !  Spécification précise du mécanisme de diffusion o  Définition d’invariants –  Différentes formes de diffusion o  Garantir les propriétés (totalement ou partiellement) lors de défaillances
  144. 144. SystèmesDistribués 144 Diffusion causale (3) ! Diffusion causale –  Principes "  Communication fiable "  Propriété à garantir
  145. 145. SystèmesDistribués 145 Diffusion fiable ! Principe !  Un message est délivré à tous ses destinataires ou à aucun o  Sémantique du tout ou rien
  146. 146. SystèmesDistribués 146 Diffusion atomique ! Principe !  Appelée aussi diffusion totalement ordonnée !  Deux propriétés o  Diffusion est fiable o  Messages sont délivrés dans le même ordre à tous leurs destinataires
  147. 147. SystèmesDistribués 147 Diffusion FIFO ! Principe !  Deux messages émis par le même émetteur sont délivrés à tout récepteur dans leur ordre d’émission
  148. 148. SystèmesDistribués 148 Etat d’un SR (1) ! Théorie !  Existence d’un observateur o  Accès instantané au système o  Impossible à mettre en œuvre physiquement ! Problématique !  Qu’est ce qu’un état en réparti ? !  Quelle sémantique lui associer ?
  149. 149. SystèmesDistribués 149 Etat d’un SR (2) ! Coupure (cut) !  Image « instantanée » du système !  Ensemble d’événements o  Eléments à gauche de la coupure ! Définition et propriétés !  Coupure C !  C ⊆ E o  E = {Ensemble de tous les événements}
  150. 150. SystèmesDistribués 150 Etat d’un SR (3) !  e ∈ C et (e’ e) ⇒ e’ ∈ C !  Ordre par inclusion o  C1 < C2 si C1 ⊂ C2
  151. 151. SystèmesDistribués 151 Coupure ! Cohérence !  Respect de la causalité o  Un message ne peut pas venir du futur !  Coupure cohérente o  Fermée par la relation de dépendance causale !  Etat global cohérent o  Associé à une coupure cohérente
  152. 152. SystèmesDistribués 152
  153. 153. SystèmesDistribués 153
  154. 154. SystèmesDistribués 154
  155. 155. SystèmesDistribués 155 ALGORITHMIQUE REPARTIE
  156. 156. SystèmesDistribués 156 Introduction ! Algorithmique répartie !  Algorithmique spécifique o  Tient compte des caractéristiques des systèmes distribués –  Aspects liés au système –  Aspects liés au réseau de communication o  Eléments de base –  Processus –  Communication –  Pannes (défaillances, …)
  157. 157. SystèmesDistribués 157 Exclusion mutuelle (1) ! Rappel !  Partage de ressource !  Section critique o  Code d’accès à une ressource partagée !  Solutions o  Vérifient un certain nombre de propriétés
  158. 158. SystèmesDistribués 158 Exclusion mutuelle (2) o  Propriété fondamentale –  Exclusion Mutuelle –  A un instant donné au plus n processus en section critique !  Solutions en centralisé o  Sémaphores, Moniteurs, …
  159. 159. SystèmesDistribués 159 Exclusion mutuelle (3) !  Solutions en distribué o  Quel sens donner à « Instant donné » o  Utiliser plutôt l’ordre o  Conditions supplémentaires –  Equité entre processus –  Vivacité "  Ni deadlock, ni privation –  Solution symétrique "  Pas d’ordonnanceur centralisé
  160. 160. SystèmesDistribués 160 Exclusion mutuelle (4) ! Solutions multiples !  Centralisée o  Serveur centralise les demandes –  Définir l’algorithmique associée –  Combien de messages sont nécessaires à un processus Pi pour accéder à sa SC o  Utilisation d’un jeton –  Mêmes questions que pour le cas centralisé –  Démontrer les propriétés de sûreté et de vivacité
  161. 161. SystèmesDistribués 161 Exclusion mutuelle (4) ! Solutions distribuées !  Solution de Lamport o  N sites o  Liaison par canal FIFO o  File d’attente répartie –  Ordonnée par les estampilles –  Une entrée pour chaque site
  162. 162. SystèmesDistribués 162 Exclusion mutuelle (5) –  Contenu d’une entrée i "  Message en provenance de i o  Nombre de messages : 3 –  REQ : Demande d’entrée en SC –  ACK : Réception d’une demande –  LIB : Sortie de la section critique o  Demande d’entrée en SC ( pour Pi) –  Diffusion de (REQ, i, Hi) à tous les processus –  FA(i)[i] = (REQ, i, Hi)
  163. 163. SystèmesDistribués 163 Exclusion mutuelle (6) o  Réception de (REQ) –  Définir l’algorithme correspondant o  Réception de (ACK) –  Réponse à l’émetteur pour lui dire que sa demande a été bien reçue –  Définir l’algorithme correspondant o  Réception de (LIB) –  Définir l’algorithme correspondant o  Condition d’entrée en SC –  Trouver la condition
  164. 164. SystèmesDistribués 164 Stabilité de message (1) ! Problème !  Ordre de délivrance des messages ? o  Résolution de l’asynchronisme ! Solution !  Stabilité d’un message o  Un message est dit stable si aucun message d’estampille inférieure ne parviendra au destinataire
  165. 165. SystèmesDistribués 165 Stabilité de message (2) ! Règle !  Ne délivrer un message que s’il est stable ! Problématiques de la stabilité !  Connaissance des émetteurs !  Pas de messages d’un processus !  Garantir la terminaison
  166. 166. SystèmesDistribués 166 Diffusion causale (1) ! Principe !  Diffusion d’un message à un ensemble de processus destinataires o  Broadcast (générale) o  Multicast (sélective) ! Problématique !  Définir des invariants !  Les garantir même en cas de défaillance
  167. 167. SystèmesDistribués 167 Diffusion causale (2) ! Exemple 1 !  Diffusion causale o  Communication fiable o  Propriété –  ∀m,m,∀i: send(m) → send(m’) ⇒ délivreri(m) → délivreri(m’)
  168. 168. SystèmesDistribués 168 Diffusion causale (3)
  169. 169. SystèmesDistribués 169 Cohérence de données (1) ! Exemple !  Base de données sur 3 sites !  Fonctions d’un site o  Consulter ou mettre à jour la BD –  Principe du read one, write all
  170. 170. SystèmesDistribués 170 Cohérence de données (2)
  171. 171. SystèmesDistribués 171 Cohérence de données (3) ! Problème !  Trouver le principe d’une mise à jour cohérente d’une base
  172. 172. SystèmesDistribués 172 Election (1) ! Problématique !  Ensemble de processus !  Choisir un seul !  Le faire connaître aux autres ! Solution !  Sûreté o  Un seul !  Vivacité o  Election en un temps fini
  173. 173. SystèmesDistribués 173 Election (2) ! Principes !  Election déclenchée par n’importe quel processus !  Existence de plusieurs élections !  Prise en charge de pannes o  Panne pendant une élection
  174. 174. SystèmesDistribués 174 Election (3) ! Intérêts !  Régénération d’un jeton !  Election d’un maître o  Schéma maître/esclaves
  175. 175. SystèmesDistribués 175 Election (4) ! Algorithmes !  Bully algorithm o  Algorithme de la brute o  Hypothèses –  Réseau fiable et synchrone –  Identité des processus connue par tous
  176. 176. SystèmesDistribués 176 Algorithme de base o  Principe –  Demande d’élection par inondation –  Un processus répond aux processus qui ont un numéro inférieur au sien "  Recherche d’un min –  Processus élu s’il ne reçoit aucune réponse –  Coût en communication de messages "  A trouver !!!!
  177. 177. SystèmesDistribués 177
  178. 178. SystèmesDistribués 178 Algorithme de Chang et Roberts (1) ! Principe !  Sites organisés sous forme d’anneau !  Election dirigée par l’anneau o  N’importe quel site peut déclencher une demande d’élection o  Messages circulent selon l’anneau –  Messages applicatifs –  Messages pour une élection "  Message d’élection "  Message pour informer qui est l’élu
  179. 179. SystèmesDistribués 179 Algorithme de Chang et Roberts (2)
  180. 180. SystèmesDistribués 180 Terminaison (1) ! Modèle !  Ensemble de Processus o  Communication par message o  Etat d’un processus –  Passif ou Actif !  Propriétés d’un processus o  Attente message o  Exécution d’un calcul local o  Fin processus (envoi ou non de message)
  181. 181. SystèmesDistribués 181 Terminaison (2) ! Problème !  Comment savoir qu’un calcul réparti est terminé ? o  Vérification de la terminaison du calcul o  Conditions sur l’état global –  Trouver ces conditions (2)
  182. 182. SystèmesDistribués 182 Terminaison (3) ! Méthodes de détection !  Méthodes générales o  Analyse de l’état global –  Terminaison: propriété stable "  Algorithme de Chandy-Lamport "  Enregistrer un état global et le vérifier !  Méthodes spécifiques o  Application pour un schéma particulier de communication –  Anneau, arbre, graphe orienté
  183. 183. SystèmesDistribués 183 Terminaison (4) ! Schéma anneau !  Trouver le principe !  Trouver une anomalie majeure de la méthode de détection de la terminaison
  184. 184. SystèmesDistribués 184
  185. 185. SystèmesDistribués 185 Terminaison (5) ! Algorithme de Misra (Anneau) !  Principe o  Site avec couleur –  Noir "  A été actif depuis le dernier passage du jeton –  Blanc : Non noir o  Jeton –  Compteur des sites trouvés passifs o  Condition de terminaison –  Trouver cette condition
  186. 186. SystèmesDistribués 186
  187. 187. SystèmesDistribués 187 Terminaison (6) ! Schéma graphe (Dijkstra-Scholten) o  Principe –  Basé sur la notion de calcul diffusant –  Calcul lancé à partir d’un nœud origine (arbre de recouvrement) "  Initiateur de la détection de la terminaison o  Fonctionnement –  Nœud reçoit un message "  Effectue un calcul "  Passe à l’état passif ou envoi de messages à ses successeurs (nombre fini)
  188. 188. SystèmesDistribués 188 Terminaison (7) –  Construction d’un arbre implicite de recouvrement "  Quel est le père d’un nœud dans l’arbre ? –  Propriétés d’un nœud "  Arcs entrants "  Arcs sortants –  Nœud (feuille) a terminé ou reçu un signal de chaque arc sortant "  Renvoi un signal sur un de ses arcs entrants "  Equilibrer les signaux entrants et sortants
  189. 189. SystèmesDistribués 189 Terminaison (8) –  Nœud renvoie un signal à son père "  Déficit annulé sur arc sortant "  Renvoi d’un signal sur chaque arc entrant autre que celui venant du père o  Fin du calcul –  Déficit du nœud origine est nul sur tous ses arcs sortants
  190. 190. SystèmesDistribués 190
  191. 191. SystèmesDistribués 191 Consensus (1) ! Présentation !  Prendre une décision concertée o  Définir un modèle qui tient compte du réparti ! Intérêts !  Validation d’une transaction répartie !  Accord sur un résultat (calcul répliqué)
  192. 192. SystèmesDistribués 192 Consensus (2) ! Spécification !  Ensemble de processus reliés par un canal o  Chaque processus Pi propose une valeur Vi o  Lancement d’un algorithme de consensus –  Si l’algorithme termine, tout Pi décide d’une valeur Di !  Conditions de validité o  Accord –  La valeur décidée est la même pour tous les processus corrects
  193. 193. SystèmesDistribués 193 Consensus (3) o  Intégrité –  Tout processus décide au plus une fois "  La décision prise est définitive o  Validité –  Toute valeur décidée est l’une des valeurs proposées o  Terminaison –  Si au moins un processus correct lance le consensus, tout processus correct décide au bout d’un temps fini !  Processus correct o  N’est pas en panne
  194. 194. SystèmesDistribués 194 Consensus (4) !  Pannes (défaillances) o  Faire des hypothèses sur les processus et le système de communication o  Pannes sur les processus –  Types de pannes "  Pannes franches "  Pannes temporelles "  Pannes bizantines "  …
  195. 195. SystèmesDistribués 195 PARTIE IV Gestion de Données Réparties
  196. 196. SystèmesDistribués 196 Historique (1) ! Gestion Centralisée (70) –  Centralisation de l’information "  SGF "  SGBD –  Duplication (Réplication) "  Performance "  Disponibilité
  197. 197. SystèmesDistribués 197 Historique (2) ! Gestion répartie (75-85) –  Serveurs accessibles à distance –  SGF répartis (Unix) "  NFS avec modèle RPC "  Gestion des caches –  Transactions réparties
  198. 198. SystèmesDistribués 198 Historique (3) ! Modèles à objets –  Paradigme objet "  Serveurs à objets répartis "  Notion de middleware "  Composant logiciel –  Nouvelles problématiques "  Modèles de programmation –  C/S, OR, Composant, ...
  199. 199. SystèmesDistribués 199 Historique (4) "  Structure du middleware "  Sécurité (communication) ! Données du Web (90) –  Nouvelles problématiques "  Absence de structure "  Hétérogénéité, Large échelle
  200. 200. SystèmesDistribués 200 Historique (5) ! Systèmes P2P –  Modèle plus équitable que C/S –  Echelle plus large ! Systèmes mobiles –  Nouvelles problématiques "  Mobilité (connexion, localisation) "  Limitations en terme de ressources
  201. 201. SystèmesDistribués 201 Réplication (1) ! Motivations –  Disponibilité "  Tolérance aux pannes –  Performances "  Rapprocher les données de leur point d'accès –  Jointure de relations
  202. 202. SystèmesDistribués 202 Réplication (2) ! Problématique –  Cohérence "  Conséquence de la réplication "  Comportement identique à une copie unique "  Coûteuse –  Coût et Qualité
  203. 203. SystèmesDistribués 203 Réplication (3) Source: Sacha Krakowiak
  204. 204. SystèmesDistribués 204 Réplication (4) ! Maintien de la cohérence –  Protocole "  Exécution des requêtes clients "  Maintenir la cohérence des répliques –  Définir un modèle de cohérence
  205. 205. SystèmesDistribués 205 Modèles de cohérence ! But –  Etablir un contrat entre un client et un fournisseur (Serveur) ! Opérations –  Lecture –  Ecriture
  206. 206. SystèmesDistribués 206 Cohérence stricte ! Principe –  Lecture d'une donnée D retourne la valeur de la dernière écriture sur D ! Problématiques –  Définition de la dernière écriture (instant) –  Exécution instantanée des opérations
  207. 207. SystèmesDistribués 207 Linéarisabilité ! Principe –  Modèle 2PC classique "  Sérialisation des requêtes –  Utilisé dans le cas de serveurs dupliqués "  Respecter une séquence S
  208. 208. SystèmesDistribués 208 Cohérence séquentielle (1) ! Principe –  Opérations exécutées selon S –  Ordre dans tout processus p identique à l'ordre dans S –  Cohérence interne des données respectée dans S
  209. 209. SystèmesDistribués 209 Cohérence séquentielle (2) ! Linéarisation vs séquentialité –  Pas de contraintes sur l'ordre relatif des opérations dans des processus différents, tant que la cohérence interne des données est respectée
  210. 210. SystèmesDistribués 210 Source: Sacha Krakowiak
  211. 211. SystèmesDistribués 211 Source: Sacha Krakowiak
  212. 212. SystèmesDistribués 212 Cohérence séquentielle (3) ! Synthèse –  Moins stricte que la linéarisabilité "  Plusieurs ordonnancements possibles –  Protocole coûteux "  R + W ≥ T –  R: temps de lecture –  W: Temps d'écriture –  T: Temps de transfert
  213. 213. SystèmesDistribués 213 Cohérence causale (1) ! Principes –  Modèle moins strict "  Basé sur une relation de causalité "  Ne considère que les événements reliés par la relation de causalité –  E1 → E2 –  Dépendances causales peuvent être définies avec des horloges vectorielles
  214. 214. SystèmesDistribués 214 Cohérence causale (2) ! Exemples "  E1: p écrit x, puis E2: q lit x, alors E1 → E2 "  E1: p lit x, puis E2: p écrit y, alors E1 → E2 "  E1: p écrit x, puis E2: q écrit y (de manière indépendante), alors E1 || E2
  215. 215. SystèmesDistribués 215 Cohérence causale (3) ! Cohérence des écritures –  Ecritures causalement liées vues par tous les processus dans leur ordre causal –  Ecritures causalement indépendantes peuvent être vues dans un ordre différent
  216. 216. SystèmesDistribués 216 Cohérence causale (4) Source: Sacha Krakowiak Commentez les lectures de p3 et p4 Est ce que scénario est possible avec une cohérence séquentielle ?
  217. 217. SystèmesDistribués 217 Cohérence FIFO (1) ! Principes –  Relaxation de la cohérence causale "  Causalité inter-processus (FIFO) "  Ecritures d'un même processus vues par tous dans leur ordre d'exécution "  Ecritures de processus différents peuvent être vues dans un ordre différent
  218. 218. SystèmesDistribués 218 Cohérence FIFO (2) Source: Sacha Krakowiak
  219. 219. SystèmesDistribués 219 Cohérence synchronisée (1) ! Constat –  Cohérence partielle et non totale "  Exécution d'une section critique –  Définir des périodes de cohérence "  Opération synchronise(S) –  S: Variable de synchronisation sur {D} –  Modèles dépendants de l'instant de synchronisation
  220. 220. SystèmesDistribués 220 Cohérence synchronisée (2) ! Cohérence faible –  Accès aux variables de synchronisation associées à un ensemble de données "  Doit respecter la cohérence séquentielle –  Les opérations de synchronisation sont vues par tous les processus dans le même ordre
  221. 221. SystèmesDistribués 221 Cohérence synchronisée (3) –  Exécution d'une opération sur une variable de synchronisation "  Réalisable que si toutes les écritures antérieures ont été exécutées sur les copies locales –  La synchronisation force la mise en cohérence de toutes les copies locales
  222. 222. SystèmesDistribués 222 Cohérence synchronisée (4) –  Exécution d'une lecture ou d'une écriture "  Exécution de toutes les opérations antérieures sur les variables de synchronisation –  Après synchronisation, un processus peut accéder à la version la plus récente des données synchronisées
  223. 223. SystèmesDistribués 223 Cohérence synchronisée (5)
  224. 224. SystèmesDistribués 224 Cohérence synchronisée (6) ! Variantes –  Définir des instants de synchronisation "  Cohérence à l'entrée –  Entry consistency "  Cohérence à la sortie –  Release consistency –  Objectif "  Réduire le nombre de mise en cohérence
  225. 225. SystèmesDistribués 225 Cohérence à la sortie (1) ! Principes –  Protéger une séquence d'opérations sur un ensemble de données D "  Utilisation d'un verrou V "  Encapsuler les opérations entre –  Acquire(V) –  Release(V)
  226. 226. SystèmesDistribués 226 Cohérence à la sortie (2) "  Acquire(V) –  Toutes les copies locales des variables protégées sont mises à jour pour tenir compte des écritures non encore répercutées "  Release(V) –  Toutes les valeurs des variables locales qui ont été modifiées sont envoyées vers les copies distantes
  227. 227. SystèmesDistribués 227 Cohérence à la sortie (3) ! Variante –  Cohérence paresseuse ou lazy release consistency "  Les modifications ne sont pas propagées à la sortie "  Réalisées (pull) à la prochaine entrée
  228. 228. SystèmesDistribués 228 Cohérence à la sortie (4)
  229. 229. SystèmesDistribués 229 Cohérence à l'entrée (1) ! Principes "  Similaire à la lazy consistency "  Toute variable modifiée indépendamment doit être associée à un verrou spécifique "  Rencontre de acquire –  Seules les variables associées au verrou utilisé sont mises à jour
  230. 230. SystèmesDistribués 230 Cohérence à l'entrée (2)
  231. 231. SystèmesDistribués 231 Cohérence à terme (1) ! Constats –  Beaucoup de lectures –  Conflits d'écritures assez rares "  Ecritures dans des sous-ensembles différents –  Possibilité de lire une donnée non à jour –  Exemple "  DNS
  232. 232. SystèmesDistribués 232 Cohérence à terme (2) ! Idée –  Tolérer des données incohérentes pendant un certain temps –  Condition à respecter "  En l'absence de mises à jour pendant un temps “assez long”, toutes les copies finiront par devenir cohérentes
  233. 233. SystèmesDistribués 233 Cohérence à terme (3) ! Principes –  Eventual consistency –  Réalisée par des protocoles "  Propager les modifications à toutes les répliques "  Propriété de convergence à terme –  Algorithmes épidémiques
  234. 234. SystèmesDistribués 234 Cohérence à terme (4) –  Ecritures peu fréquentes "  Résolues cas par cas ! Problème –  Accès successifs à plusieurs copies de la même donnée "  Client mobile "  Utilisation de caches
  235. 235. SystèmesDistribués 235 Cohérence orientée client (1) ! Types d'opérations –  Lectures monotones "  Processus a lu une valeur de D "  Lecture ultérieure de D –  Même valeur –  Valeur plus récente "  Pas de retour en arrière
  236. 236. SystèmesDistribués 236 Cohérence orientée client (2) –  Ecritures monotones "  Deux écritures successives sur D –  Précédence entre les deux écritures "  La première précède la deuxième –  Mettre à jour une copie que si elle a été déjà mise à jour "  Equivalent à une cohérence FIFO
  237. 237. SystèmesDistribués 237 Cohérence orientée client (3) ! Cohérence Ecriture-Lecture (Read Your Writes) –  Processus modifie une donnée D "  Modification visible par toute lecture ultérieure de D
  238. 238. SystèmesDistribués 238 Cohérence orientée client (4) –  Cache utilisé pour la lecture et non l'écriture –  Rafraichissement explicite du cache
  239. 239. SystèmesDistribués 239 Cohérence orientée client (5) ! Cohérence Lecture-Ecriture –  Writes Follows Reads "  Processus lit une donnée D puis exécute une écriture sur cette donnée "  Ecriture modifie (partout) une valeur de la donnée au moins aussi récente que la valeur lue
  240. 240. SystèmesDistribués 240 Cohérence orientée client (6)
  241. 241. SystèmesDistribués 241 Gestion de la cohérence (1) ! Stratégies de réplication –  Copies permanentes "  Nombre, localisation –  Copies temporaires "  Selon les besoins "  Définies par les serveurs –  Répondre à une situation donnée (surcharge)
  242. 242. SystèmesDistribués 242 Gestion de la cohérence (2) –  Copies temporaires coté client "  Utilisation de caches ! Placement –  Où stocker les répliques d'une donnée D "  Définir des objectifs –  Disponibilité –  Coût d'accès –  Coût de communication –  ...
  243. 243. SystèmesDistribués 243 Gestion de la cohérence (3) ! Maintien de la cohérence –  Techniques de propagation "  Par invalidation –  Signaler qu'une réplique est invalide "  Par copie –  Transfert de la copie qui est à jour "  Par transfert des opérations
  244. 244. SystèmesDistribués 244 Gestion de la cohérence (4) ! Décision de MAJ –  Qui décide de faire la propagation "  Serveur –  Méthode PUSH "  Cient –  Méthode PULL
  245. 245. SystèmesDistribués 245 Protocole de la cohérence (1) ! Objectif –  Mise en oeuvre d'un modèle ! Choix de la technique de réplication –  Active –  Passive –  Semi-passive (semi-active)
  246. 246. SystèmesDistribués 246 Protocole de la cohérence (2) ! Mise en oeuvre –  Par serveur "  Primaire "  Secondaire –  Quorum et vote "  Client obtient une autorisation des serveurs

×