Introduction aux Systèmes
Distribués (Répartis)
Chapitre 1
1
P. Michel BERE
Plan
• Définition
• Critères de Conception d’un S.E.D
• Logiciels?
• Caractéristiques des systèmes repartis
• Algorithmes repartis
• Qualités d’un algorithme reparti
• Critères d’un système distribué
Définitions d’un SD
•Définition [Tanenbaum]: Un ensemble
d’ordinateurs indépendants qui apparaît à
un utilisateur comme un système unique et
Cohérent
• Les machines sont autonomes
•Les utilisateurs ont l’impression d’utiliser
un seul système.
Définitions d’un SD
Définition humoristique, mais qui met l’accent
sur deux points essentiels :
• l’interdépendance entre les éléments d’un système
réparti
• l’importance du traitement des défaillances.
• Un système à plusieurs processeurs n’est pas
forcement un système réparti.
• Qu’est ce qu’un système réparti, distribué,
parallèle?
Concepts matériels
• Taxonomie de Flynn (1972)
On différencie les systèmes sur la base du flux
d’instructions et de données.
– SISD : PC monoprocesseur
– SIMD : machines vectorielles
– MISD : pipeline
– MIMD : machines multiprocesseurs faiblement et
fortement couplées (systèmes parallèles, systèmes
distribués, systèmes d’exploitation réseaux)
Définition
9
10
Objectifs
- Coût : plusieurs processeurs à bas prix
- Puissance de calcul et de stockage : aucune machine
centralisée ne peut rivaliser
- Performance (accélération) : via du calcul parallèle
- Adaptation : à des classes d'applications réelles naturellement
distribuées
- Fiabilité : résistance aux pannes logicielles ou matérielles
- Extensibilité : croissance progressive selon le besoin
11
Avantages/Inconvénients
Avantages
- partage de données
- partage de périphériques
- communication
- souplesse (politiques de placement)
Inconvénients
• Très peu de logiciels existent sur le marché.
• Le réseau peut très vite saturer.
• La sécurisation des données sensibles est
compliquée.
• La mise en œuvre est difficile.
12
Critères de Conception d’un
S.E.D. ou d’un Syst. Opératoire
pour une architecture
distribuée
• Transparence
• Souplesse
• Fiabilité
• Performances
• Dimensionnement
13
Critères de Conception d’un
S.E.D Transparence
• Transparence à l'emplacement: L'utilisateur ne connaît
pas où sont situées les ressources
• Transparence à la migration: Les ressources peuvent être
déplacées sans modification de leur nom
• Transparence à la duplication: L'utilisateur ne connaît
pas le nombre de copies existantes
• Transparence à la concurrence: Plusieurs utilisateurs
peuvent partager en même temps les mêmes ressources
• Transparence au parallélisme: Des tâches peuvent
s’exécuter en parallèle sans que les utilisateurs le sachent
14
Critères de Conception d’un
S.E.D souplesse
• La facilité de modification, de configuration et
d'extension
15
Critères de Conception d’un
S.E.D Fiabilité
Disponibilité, Sécurité, Tolérance aux pannes
• Disponibilité
La disponibilité est la fraction de temps pendant
laquelle le système est utilisable :
- limiter le nombre des composants critiques
- dupliquer les parties clés des composants
logiciels et matériels (redondance)
- mais implique de savoir maintenir la cohérence
des copies
16
Critères de Conception d’un
S.E.D Fiabilité
• Securité
Les ressources doivent être protégées contre des
utilisations abusives et malveillantes. En
particulier le problème de piratage des données
sur le réseau de communication
17
Critères de Conception d’un
S.E.D Fiabilité
• Tolérance aux pannes
Le système doit être conçu pour masquer les
pannes aux utilisateurs. La panne de certains
serveurs (ou leur réintégration dans le système
après la réparation) ne doit pas perturber
l'utilisation du système en terme de fonctionnalité
18
Critères de Conception d’un
S.E.D Performances
Critères, Problème, Solution,
• Critères
- temps de réponse
- débit (nombre de travaux par heure)
- taux d'utilisation du système
- pourcentage utilisé de la bande passante du
réseau
19
Critères de Conception d’un
S.E.D Performances
• Problèmes
-La communication est en général assez lente dans les
systèmes distribués par rapport accès fichier
- Le mécanisme de tolérance aux pannes requiert
beaucoup d’opérations “inutiles” si pas de panne
• Solutions
Minimiser les échanges de message
- réduire le champ d'application des mécanismes de
reprises sur pannes
20
Critères de Conception d’un S.E.D
Performances: Dimensionnement
• Goulots d'étranglement potentiel si débit d'information très
important
3
Logiciel?
Nous distinguons, historiquement,trois
étapes dans la Conception des logiciels
d’exploitation des réseaux d’ordinateurs.
22
Les systèmes client-serveur
Chaque site dispose d’un système d’exploitation propre
Peut être
client : demandeur de services aux autres sites
Ou
serveur : offre des services aux autres sites
23
Systèmes homogènes
Interconnexion de Systèmes homogènes avec partage de ressources
Répartition plus ou moins visible Partage de ressources
Réparties sur les différents
sites
Possibilité de réaliser à distance la plupart des appels système
24
Les deux premières approches permettent à un utilisateur, à
partir d’un site donné, d’accéder aux services offerts par un
autre site par ajout des fonctions liées à la répartition à un
système déjà existant.
• Sites parfaitement autonomes
•Architecture matérielle et localisation des différentes fonctions
du système visibles à l’utilisateur.
25
Systèmes d’exploitation répartis
Développement de la technologie des microprocesseurs
Apparition des réseaux locaux à haut débit
Concevoir un système unique mis en œuvre sur un ensemble
De sites communiquant entre eux par échange de messages.
• Systèmes conçus au départ comme répartis
• Leurs fonctions de base prennent en compte la répartition.
26
•Ces fonctions sont assurées par un noyau réparti dont
une copie est localisée sur chacun des sites.
•Les fonctions qui mettent en jeu plusieurs sites sont réalisées
Par la coopération des noyaux de ces sites.
L’utilisation de plusieurs processeurs
Est donc transparente aux usagers
27
Caractéristiques des Systèmes
répartis
• Absence de mémoire commune
Impossibilité de capter instantanément
L’état global d’un système réparti au
moyen d’un ensemble de variables partagées.
• Absence d’une horloge physique commune
+
• Variabilité des délais de transmission des
messages
28
Deux éléments distincts du système peuvent
avoir une perception différente de l’état d’un
troisième élément ou sous-système et de
l’ordre des événements qui s’y produisent.
Délai de transmission d’un message entre deux processus
s’exécutant sur deux machines distinctes TRES GRAND
par rapport au temps qui sépare deux points observables
consécutifs sur une même machine.
A un instant donné, un processus s’exécutant sur une machine
ne peut connaître que de manière approchée l’état d’une autre
Machine.
29
Adéquation architecture / logiciel
Recherche d’une adéquation entre l’architecture
et la structure fonctionnelle des problèmes à résoudre
Faire coopérer plusieurs sites à la résolution d’un problème.
Construire un algorithme résolvant un problème comme un
Ensemble d’unités fonctionnelles (ex: des processus) s’exé-
cutant sur des sites distincts et communiquant par échange
de messages.
30
Algorithmes répartis
Définition:
• Un algorithme réparti est un algorithme parallèle
composé d’un ensemble fini de processus séquentiels
communiquant entre eux par échange de messages.
Réaliser un service Réaliser une observation
Calcul de fonctions
• Election • Exclusion mutuelle • Détection d’interblocage
•Protocoles de com- • Détection de la terminaison
• Arborescence couvrante
munication : •Détection de propriétés stables
• Chemins minimaux,…
(indépendament d’une propriété
Synchrone (RDV)
Synchronisme virtuel stable particulière).
(total, causal, atomique,…)
31
Quelques algorithmes de
contrôle réparti
• Exclusion mutuelle:
Il s’agit d’attribuer un privilège équitablement à un
ensemble de processus communicants qui coopèrent
à la réalisation d’un but commun (le privilège ne
peut être possédé indéfiniment par un même
processus).
• Election:
Il y a élection d’un processus par l’ensemble des autres
processus lorsque le privilège lui sera attribué une
fois pour toute.
32
Quelques algorithmes
de contrôle réparti
• Interblocage:
C’est la situation dans laquelle se trouve un ensemble de processus (au
moins deux) telle que chaque processus de l’ensemble attend l’occurrence
d’un événement qui ne peut être produit que par un autre processus de
ce même ensemble.
Evénement :
Libération d’une ressource
Arrivée d’un message
Deux types d’interblocage
• Interblocage de compétition (lié aux ressources)
• Interblocage lié à la communication : chaque processus
attend un message d’un autre processus alors qu’aucun message n’est en
transit.
33
Quelques algorithmes de
contrôle réparti
• Terminaison:
Comment peut-on détecter la terminaison d’un
algorithme réparti ?
Facile si l’on pouvait disposer d’un état global instantané
décrivant l’état des processus et des voies de communication.
Un algorithme réparti sera dit terminé si tous les processus
Sont passifs et il n’y a aucun message en transit.
34
Qualité d’un algorithme réparti
• Quelques critères
Réseau de communication
Duplication des messages
Altération des messages
Déséquencement des messages
Délai de transmission fini
Délai de transmission borné
Trafic engendré
Nombre de messages engendrés pour produire un résultat
Temps de calcul
35
Qualité d’un algorithme réparti
Symétrie
Un algorithme est dit symétrique si tous les processus exécute le même texte.
Tous les processus jouent alors le même rôle.
Meilleure résistance aux pannes des processus
Etat local ou global
La connaissance d’un état local uniquement pour prendre une décision
Réduction du nombre de messages échangés
Chaque processus est plus autonome par rapport aux autres
Meilleure résistance aux pannes
36
Critère d’un système
distribué
Le système doit pouvoir fonctionner (au moins de façon dégradée) même en cas
de défaillance de certains de ses éléments
Le système doit pouvoir résister à des perturbations du système de
communication (perte de messages, déconnexion temporaire, performances
dégradées)
Le système doit pouvoir résister à des attaques contre sa sécurité (tentatives de
violation de la confidentialité et de l’intégrité, usage indu de ressources, déni de
service)
Le système doit pouvoir facilement s’adapter pour réagir à des changements
d’environnement ou de conditions d’utilisation
Le système doit préserver ses performances lorsque sa taille croît (nombre
d’éléments, nombre d’utilisateurs, étendue géographique) dimensionnement
37
Critère d’un système
distribué
Difficultés
Propriété d’asynchronisme du système de communication (pas de borne
supérieure stricte pour le temps de transmission d’un message
Conséquence : difficulté pour détecter les défaillances
Dynamisme (la composition du système change en permanence)
Conséquences : difficulté pour définir un état global
Difficulté pour administrer le système
Grande taille (nombre de composants, d’utilisateurs, dispersion
géographique)
Conséquence : la capacité de croissance (scalability) est une propriété
importante, mais difficile à réaliser
38