Académique Documents
Professionnel Documents
Culture Documents
Introduction et Contexte
Laurent PHILIPPE
Master 2 Informatique
UFR des Sciences et Techniques
2013/2014
Introduction
Qu'est que l'algorithmique distribuée ?
De l'algorithmique...
Solution à un problème de traitement
Tri
Graphes
Synchronisation
Exemple
Système distribué
Une entreprise de voyage (bus)
4 antennes réparties géographiquement
Problème
Les clients réservent leur(s) place(s) dans les agences
Peuvent annuler leur voyage
Réservations simultanées pour la(les) place(s)
Garantir pas de surbooking ni bus sous-utilisé, optimal
Solutions intuitives
Interroger tous les autres lors d'une réservation
Informer tous les autres
Laurent lors d'une
PHILIPPE annulation
Chapitre 1: Introduction et Contexte 3 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 4 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 5 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 6 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Système Centralisé
Caractérisation
Ensemble de composants (c÷urs, processeurs, périphériques)
partageant une mémoire et une horloge
Propriétés
Possibilité de dater de manière non ambiguë les évènements
Possibilité d'accéder à une donnée commune
Partage de ressources : processeur, mémoire, disque, périph, ...
Programmation concurrente synchronisée : sémaphore, mutex
Exemple : problème de synchronisation en Java multi-thread
Système Distribué
Caractérisation
Ensemble de composants (ordinateurs,téléphones,embarqués,...)
autonomes reliés par un réseau de communication, sans partage.
Programmation distribuée
Pas d'état global : un processus ne peut pas connaître
instantanément l'état des autres processus
Pas d'horloge globale : chaque processus a sa propre horloge
Echanges : communication et synchronisation, uniquement par
échange de messages
Risque de perte de messages
Risque de fautes
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 8 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Inconvénients
Pas d'horloge globale
Pas d'état global immédiat accessible à un site
Fiabilité relative : distribution permet d'introduire de la
tolérance aux fautes
Sécurité relative : architecture distribuée plus dicile à
protéger (plusieurs points d'accès aux ressources, évolution
dynamique de l'architecture)
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 11 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Les clusters :
Ensemble de n÷uds identiques ayant le même OS connectés
par un réseau local high speed (ex : InniBand)
Architecture caractérisée par une certaine homogénéité
Utilisés pour la programmation parallèle : un même programme
est exécuté en parallèle sur plusieurs machines. (SPMD)
Les grilles :
Système prote d'un ensemble de machines qui sont ou ne
sont pas dédiées
Machines peuvent être éloignées
Architectures hétérogènes : au niveau hardware, système ....
Calcul, données, applications, etc.
Types de grilles :
Desktop grid
Resource Grid
Service Grid
Propriétés
Noeuds xes
Noeuds ables : peu de fautes
Connexion permanente et de haute qualité
Instabilité
Noeuds peuvent apparaître/disparaître
Pas toujours de connexion réseau
Mobilité des noeuds
Systèmes peu traités dans ce cours
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 16 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 17 / 67
Systèmes distribués
Modélisation des systèmes distribués Systèmes centralisés vs. système distribué
Premier problème Les diérents types de systèmes distribués
Complexité et propriétés des algorithmes distribués Les middlewares
Objectifs du cours
Références
Dénition
Couche d'exécution distribuée entre les systèmes d'exploitation
locaux et les applications
Objectifs
Orir une interface permettant de :
rendre indépendantes les applications par rapport aux
plates-formes
cacher la distribution aux utilisateurs : orir une interface la
plus proche possible du "centralisé"
Distribué ou centralisé ?
Distribué ou centralisé ?
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 22 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 24 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Dénitions
Elément logiciel eectuant une tâche donnée
tâche : ensemble d'instructions
instruction : correspond à un évènement local du processus
évènement local :
changement d'état du processeur,
émission de message
réception de message
Connaît (hypothèse)
Les processus avec qui il peut communiquer et leur nombre
(voisins)
Les procédures de communication
Eventuellemnt l'état approximatif des autres processus
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 26 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 27 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
La communication
Topologie
La topologie d'un réseau décrit la façon dont les processus peuvent
communiquer entre eux.
Exemple de topologies
anneau uni ou bi-directionnel
réseau complet
arbre
grille
Protocoles de communication
point à point
diusion Laurent PHILIPPE Chapitre 1: Introduction et Contexte 28 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Communication synchrone/asynchrone
Communication synchrone
Entre les processus P et P se fait par rendez-vous : le premier
i j
Communication asynchrone
Le processus P envoie un message et continue son exécution
i
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 30 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Graphe de processus
Graphe : G (P, C)
Sommets = sites logiques, P ensemble de processus
Arcs = liaisons de communication entre les sites logiques, C
ensemble de liens
Arc entre P et P signie que P et P peuvent communiquer
i j i j
sans intermédiare
Chronogramme
Représentation graphique
Ordre des évènements
Déroulement chronologique sur chaque site
Représentation simple mais limitée
Évènements
Emission de message
Réception de message
Evènement interne
Exemple de chronogramme
Processus 1 Processus 2 Processus 3
E1.1 E2.1
E1.2 E2.2
E3.1
E2.3
E1.3
E2.4
E3.2
E3.3
E1.4 E3.4
E2.5
E1.5 E2.6 E3.5
E3.6
E2.7 E3.7
E1.6
E2.8 E3.8
initial.
La transition du l'état c −1 à l'état c du processus p est
i
p
i
p
On dénit E = ∈P {e 0 , e 1 , e 2 , ...}
S
v p p p p
la liste rcvd pq
i
des messages que q à reçu de p parmi les
évènements ep à e
0 i
,
p
Sommaire
1 Systèmes distribués
Systèmes centralisés vs. système distribué
Les diérents types de systèmes distribués
Les middlewares
2 Modélisation des systèmes distribués
Les sites logiques
La communication
Les Modèles de systèmes distribués
Le modèle algorithmique
3 Premier problème
4 Complexité et propriétés des algorithmes distribués
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 37 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
L'algorithmique distribuée
Qu'est ce que c'est ?
Algorithmique
Point de vue modélisé
Spécique aux problèmes soulevés par les systèmes distribués
Caractéristiques
Programmes + Communication par messages
Pas de donnée partagée : chaque programme déni ses propres
données
Exécution : déroulement en parallèle des programmes,
synchronisation/échanges sur les messages
Preuve
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 38 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Modèle algorithmique
Modèle algorithmique
Modèle de communication
Diérents types de messages (ACK, REQ, etc.)
envoyer : Envoie TYPE(parametres) à destinataire
recevoir : Reçoit TYPE(parametres) de emetteur
Dénition de règles associées aux réceptions
Propriétés
Synchronisation dépend des proriétés des fonctions de
communication
Peuvent être dénies spéciquement (précisé)
Mais généralement asynchrone : envoi du message sans
attendre sa réception
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 40 / 67
Systèmes distribués
Modélisation des systèmes distribués Les sites logiques
Premier problème La communication
Complexité et propriétés des algorithmes distribués Les Modèles de systèmes distribués
Objectifs du cours Le modèle algorithmique
Références
Messages utilisés :
BROADC(P, Msg) : Message de diusion
début
Envoie BROADC(i , Msg) à Succ i
n
Règle 2 : P reçoit BROADC(init, Msg) de P
i j
début
if init !=i then
Envoie BROADC(init , Msg) à Succ i
n
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 42 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Exemple simple
Solutions
1 Une porte centralise la valeur
3 Les portes qui n'ont plus de quota interrogent les autres pour
savoir si une place s'est libérée
4 Les portes communiquent entre elles pour gérer le compteur
en commun
5 Chacun travaille indépendemment, collaboration seulement si
le nombre de places passe sous un seuil
6 Et encore bien d'autres solutions...
Exercice
1 Ecrire les algorithmes des portes pour l'entrée et la sortie
d'une voiture dans le cas centralisé.
2 Donner la preuve de cet algorithme
Contraintes
Les portes secondaires demandent à la porte principale
Pas de mise en attente des voitures : plus de place = refus
d'accès
Le résultat attendu est une variable ACCORD ou REFUS
Messages utilisés : ? ?
Règle 1 : Une voiture demande d'entrer
début
if compteur == 0 then
return REFUS
else
compteur = compteur - 1
return ACCORD
n
Règle 2 : Une voiture demande de sortir
début
compteur = compteur + 1
n
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 47 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
n
Règle 2 : Réception du message RETOUR (rep ) du maître début
return rep
n
Règle 3 : Une voiture demande de sortir
début
compteur = compteur + 1
n
Solution - 1
Preuve
Montrer la proposition : aucune voiture entre dans le parking si il
n'y a pas de place disponible
Idée
Repose sur une autre assertion : le nombre compteur est le compte
exact du nombre de voitures dans le parking :
Quand une voiture entre, quelque soit la porte utilisée, le
compteur est décrémenté
Quand une voiture sort, quelque soit la porte utilisée, le
compteur est incrémenté
Solution - 1
Problèmes
Synchronisation chez la porte principale :
concurence entre les fonctions locales et distantes,
concurence entre les fonctions distantes
Contraintes
Au début chaque porte se voit attribuer le même quota
On suppose que le nombre de places est divisible par le nombre
de portes
Pas de mise en attente des voitures : plus de place = refus
d'accès
Le résultat attendu est une variable ACCORD ou REFUS
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 53 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Solution - 2
Preuve
Montrer la proposition : aucune voiture n'entre dans le parking si il
n'y a pas de place disponible
Idée
Bien sûr cet algorithme ne permet pas de garantir cette proposition,
il sut pour cela de donner un exemple où cela ne marche pas
A partir de l'état intial, + 1 voitures arrivent à la porte i
P
N
Solution - 2
Problèmes
Ne permet pas d'utiliser toutes les places
Toutes les voitures sortent par la même porte
Une porte tombe en panne
Contraintes
Au début chaque porte se voit attribuer le même quota
On suppose que le nombre de places est divisible par le nombre
de portes
Pas de mise en attente des voitures : plus de place = refus
d'accès
Le résultat attendu est une variable ACCORD ou REFUS
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 57 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Solution - 4
Consensus
Maître tournant : le maître peut modier la valeur, demande à
devenir maître, enregistre à qui a donné la maîtrise
Exercices
A faire
Solution - 4 : anneau
A faire
Solution - 5 : consensu
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 60 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Propriété de sûreté
Un état catastrophique ne sera jamais atteint
Exemple : accès en exclusion mutuelle où une section critique
est accessible par au plus un processus
Propriété de vivacité
Un état de satisfaction sera fatalement atteint
Exemple : toute demande d'accès à la section critique sera
satisfaite ou encore tout message émis sera reçu
Propriété de terminaison
L'algorithme distribué se termine ou conduit à une décision
Exemple : cas de l'élection d'un maître
Propriété de ponctualité
Des contraintes temporelles peuvent être xées
Exemple : une échéance de remise de messages au plus tard
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 63 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 64 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Objectifs du cours
Sommaire
1 Systèmes distribués
3 Premier problème
5 Objectifs du cours
6 Références
Laurent PHILIPPE Chapitre 1: Introduction et Contexte 66 / 67
Systèmes distribués
Modélisation des systèmes distribués
Premier problème
Complexité et propriétés des algorithmes distribués
Objectifs du cours
Références
Références