Université de la Manouba
Institut Supérieur des Arts Multimédia de la Manouba (ISAMM)
Cours systèmes parallèles
et distribués
Dr. Mouna Jouini
[Link]@[Link]
A. U 2023-2024
PLAN
Chapitre 1: introduction aux systèmes parallèles et
distribués
Chapitre 2: Gestion de temps et des états
Chapitre 3: Gestion des données parallèles et distribuées
Chapitre 4: Gestion des transactions parallèles et
distribuées
Chapitre 5: Tolérances aux fautes
CHAPITRE 1
INTRODUCTION AUX SYSTEMES
PARALLELES ET DISTRIBUES
Progrès technologiques
Les réseaux d’ordinateurs sont partout !!!
Internet, réseaux de téléphones mobiles, réseaux locaux, etc.
Les progrès technologiques des ordinateurs et le haut débit
permettent aux différentes applications sur des ordinateurs distincts
(et distants) de coopérer pour effectuer des tâches coordonnées;
Avant les années 80 : les ordinateurs étaient encombrants et chers
(les systèmes centralisés);
A partir de la mi-80, deux nouveautés:
Microprocesseurs (moins chers et très rapide)
LANs and WANs
Contexte
(a) Pressions pour la distribution
systèmes qui résistent à la montée en
charge et qui fournissent un bon temps
SGBD de réponse aux requêtes et transactions
SGBD Relationnel sur des gros volumes de données.
Semi-Structuré
SGBD
Structuré
1.
Augmentation
du volume de
l’information/
transactions
SGBD
SGBD
Structuré
relationnel
2. Progrès
SGBD
technologiques
Objet
SGBD
objet
Contexte
(b) Progrès technologiques
Pour améliorer le débit des E/Ss :
1. Partitionnement des données pour un accès
parallèle aux données
2. Utiliser plusieurs noeuds (avec un bon coût/
performance), et les faire communiquer par un
réseau.
Les systèmes parallèles et
distribués se sont développés
Contexte: Technologie + besoins
Évolution Évolution
Technologique des besoins
Performance des voies de Structure des entreprises et des
télécommunication (débit et organisations : communication
fiabilité) et partage (ex. Intranet);
Rapport coût/performance des Accès universel à l’information
stations; ([Link]);
Convergence informatique et Informatique distribuée “grand
téléphonie. public” (ex. vidéo interactive).
Applications
Distribuées/
parallèles
Informatique classique Vs Informatique
répartie/ parallèle
Informatique classique Informatique répartie
Centralisation: Réalité :
Des moyens de calcul Développement des réseaux
Des moyens de stockage Intégration d’applications séparées
Du contrôle Pénétration de l’informatique dans
Du calcul tous les domaines
Des données
Solution : Répartition des ressources et
du contrôle
L'informatique répartie est l'un des enjeux
majeurs de l'informatique à l'heure actuelle
et dans le futur.
Système distribué en opposition à
système centralisé
Systèmes centralisés Systèmes réparties
Architecture : un serveur Architecture : où un ensemble de
fournissait des services à un serveur relié par un réseau compose
ensemble de terminaux un système qui fournit des services
Avantage : simple à administrer Exemple : Internet est un exemple de
Inconvénients : service distribué réussit. Un ensemble de
- sa très faible tolérance aux serveurs fournit au client de l'information.
pannes Le navigateur est l'intergiciel qui permet
- la possibilité que le coeur d'avoir accès aux serveurs.
du réseau devienne un goulot
d'étranglement
Système distribué en opposition à
système centralisé
Système Centralisé : tout est localisé sur la même machine
et accessible par le programme
Système logiciel s'exécutant sur une seule machine
Accédant localement aux ressources nécessaires (données, code,
périphériques, mémoire ...)
Système distribué : une définition parmi d'autres
Ensemble d'ordinateurs indépendants connectés en réseau et
communiquant via ce réseau.
Systèmes répartis
Ensemble de
composants
matériel et logiciel
Système
reparti
(SR)
Interconnecté
Coopérer pour
par un réseau de
réaliser des
communication
tâches communes
Systèmes répartis
La majorité des applications informatiques sont maintenant
réparties, c’est-à-dire mettent en jeu un ensemble
d’ordinateurs ou d’organes divers reliés par un réseau de
communication
Idée centrale des systèmes répartis
Répartition :
Des moyens de calcul
Des moyens de stockage
Des données
Du calcul
Du contrôle
Systèmes répartis – Définition-
Plusieurs définitions…
Un système réparti est système informatique dans lequel les ressources ne
sont pas centralisées.
Système réparti: collection d’ordinateurs autonomes liés par un
réseau d’ordinateurs qui communiquent et coordonnent leurs
actions uniquement par le biais de transmission de messages.
Répartition: mise à disposition d’un ensemble de ressources et
services connectés via un réseau pour tous les usagers qui
possèdent un droit d’accès en un point quelconque.
Systèmes répartis – Définition-
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.
Deux points essentiels :
l’interdépendance entre les éléments d’un système réparti
l’importance du traitement des défaillances
→ C'est un ensemble de processus communiquant, répartis sur un réseau de
machines le plus souvent hétérogènes, et coopérant à la résolution d'un
problème commun.
Systèmes répartis – Définition-
Plusieurs composantes réparties sur plusieurs machines et
interconnectés grâce à un intergiciel (Middleware).
Systèmes répartis – Terminologie-
Intergiciel : c’est une couche logicielle intermédiaire située entre
l'application et le système d'exploitation de la machine. C’est une
couche qui sert à concevoir, développer et déployer une
application répartie.
Un middleware (interlogiciel) est un logiciel qui agit comme une
passerelle entre les autres applications, bases de données pour offrir aux
utilisateurs des services unifiés... C’est un logiciel qui fournit aux
applications des fonctionnalités et des services communs que le système
d'exploitation n'offre pas.
3 objectifs principaux d’un intergiciel :
Masquer la complexité de l'infrastructure sous-jacente
Faciliter la conception, le développement et le déploiement
d'applications réparties
Fournir des services communs
Systèmes répartis – Terminologie-
Noeud : nous appellerons noeuds chacun des processus
(s’exécutant sur une machine réelle ou virtuelle) qui participe à
un système réparti.
Un noeud possède un espace mémoire local, ainsi qu’une ou plusieurs
tâches (fils d’exécution cohabitant dans l’espace mémoire local).
Systèmes répartis Vs systèmes parallèles
Systèmes Parallèles. Une machine multiprocesseurs avec
un environnement du type SIMD (tous les processeurs exécutent le
même programme et ont une vision uniforme de l’état global du
système). Extensible à un réseau de machines asynchrones
fortement Couplées
Systèmes distribués. processus indépendants sur des
machines distinctes et communiquant par échange de messages
asynchrones (en général, des réseaux faiblement couplés).
Systèmes répartis Vs systèmes parallèles
9
Systèmes répartis Vs systèmes parallèles
9
Systèmes répartis Vs systèmes parallèles
• MIMD à mémoire partagée
– Les processeurs ont accès à la mémoire comme un espace d'adressage
global. Tout changement dans une case mémoire est vu par les autres
CPU. La communication inter-CPU est effectuée via la mémoire
globale.
• MIMD à mémoire distribuée
– Chaque CPU a sa propre mémoire et son propre système
d'exploitation. Ce second cas de figure nécessite un middleware pour
la synchronisation et la communication. Un système MIMD hybride
est l'architecture la plus utilisée par les superordinateurs. Ces
systèmes hybrides possèdent l'avantage d'être très extensibles,
performants et à faible coût.
Vision matérielle/ logicielle d'un SD
Vision matérielle : architecture matérielle
Machine multi-processeurs avec mémoire partagée ;
Cluster d'ordinateurs dédiés au calcul/traitement massif parallèle ;
Ordinateurs standards connectés en réseau.
Vision logicielle
Système logiciel composé de plusieurs entités s'exécutant
indépendamment et en parallèle sur un ensemble d'ordinateurs
connectés en réseau
Dans ce cours
Conception logicielle des systèmes distribués
Par défaut sur une architecture matérielle de type ordinateurs
connectés en réseau
Systèmes répartis – Caractéristiques-
Pourquoi un système réparti ?
Les systèmes répartis sont populaires pour plusieurs raisons:
Il est plus économique d’utiliser un ensemble de petites machines (PC)
que de travailler sur un grand système.
Un ensemble de petites machines reliées en réseau peuvent avoir une
puissance supérieure à un système centralisé.
Les petites machines sont fiables, mais en cas de panne d’une machine
les autres peuvent la remplacer et assurer les services.
Accès distant : un même service peut être utilisé par plusieurs acteurs,
situés à des endroits différents
Besoin d’intégration (applications existantes).
Systèmes répartis – But-
Les systèmes répartis ont une architecture plus adaptée à l’organisation
des entreprises décentralisées
Plus de fiabilité : les BDR sont souvent répliquées. La panne d’un
site n’est pas très importante pour l’utilisateur, qui s’adressera à
autre site.
Meilleures performances : réduire le trafic sur le réseau est
une possibilité d’accroître les performances. Le but de la
répartition des données est de les rapprocher de l’endroit où
elles sont accédées. Répartir une base de données sur plusieurs
sites permet de répartir la charge sur les processeurs et sur les
entrées/ sorties.
Faciliter l’accroissement : l’accroissement se fait par l’ajout de
machines sur le réseau.
Exemples
WWW ;
Contrôle du trafic aérien ;
Super calcul distribué ;
Système de fichier distribué ;
DNS (Domain Name System) ;
Systèmes Pair-à-pair (P2P).
Guichet de banque,
Système de réservation (voyage, hotel, vehicule…)
Télévision interactive.
Robots footballeurs.
Jeux en réseaux
Exemple 1 : Serveur de fichiers
Serveur de fichiers
Accès aux fichiers de l'utilisateur quelque soit la machine utilisée
Machines du département informatique
Clients : Mouna
Un serveur de fichiers
Sur toutes les machines : /home/anis est le « home directory » de
l'utilisateur Mouna
Physiquement : fichiers se trouvent uniquement sur le serveur
Virtuellement : accès à ces fichiers à partir de n'importe quelle
machine cliente en faisant « croire » que ces fichiers sont stockés
localement
Exemple 1 : Serveur de fichiers
Serveur de fichier : Intérêts
Accès aux fichiers à partir de n'importe quelle machine
Système de sauvegarde associé à ce serveur
Transparent pour l'utilisateur
Inconvénients
Si le réseau ou le serveur plante : plus d'accès aux fichiers
Exemple 2 : Web
Un serveur web auquel se connecte un nombre quelconque de
navigateurs web (clients)
Accès à distance à l'information
Accès simple
Serveur renvoie une page HTML statique qu'il stocke localement
Traitement plus complexe
Serveur interroge une base de données pour générer
dynamiquement le contenu de la page
Transparent pour l'utilisateur : les informations s'affichent dans
son navigateur quelque soit la façon dont le serveur les génère.
Exemple 3 : Calculs scientifiques
Plusieurs architectures matérielles généralement
utilisées
Ensemble de machines identiques reliées entre elles par un réseau
dédié et très rapide (cluster)
Ensemble de machines hétérogènes connectées dans un réseau local
ou bien encore par Internet (grille)
Principe général
Un (ou des) serveur distribue des calculs aux machines clients
Un client exécute son calcul puis renvoie le résultat au serveur
Avantage
Utilisation d'un maximum de ressources de calcul
Inconvénient
Si réseau ou serveur plante, alors arrêt du système
Systèmes répartis/ Parallèles – Avantages et
Inconvénients-
Avantages
a) Partage et mise à disposition : partage de ressources et de services
(exemples : imprimante, service de gestion de fichiers « répartis »)
b) Fonctionnement continu (disponibilité): 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
Tolérance aux fautes
La défaillance d’un noeud, ne bloque que partiellement les autres
noeuds
Possibilité de répliquer les services dans différents noeuds
↔ Services plus disponibles que dans une architecture centralisée
c) Résister au réseau : le système doit pouvoir résister à des perturbations/
défaillances du système de communication (perte de messages,
déconnexion temporaire, performances dégradées)
Systèmes répartis/ Parallèles – Avantages et
Inconvénients-
d) Puissance de calcul (Performance) :
Puissance de calcul importante
Faible coût
Paralléliser les algorithmes de calcul
Disposer d’un environnement d’exécution répartie
e) Flexibilité : le système doit pouvoir facilement s’adapter pour réagir à des
changements d’environnement ou de conditions d’utilisation
Architecture modulaire
Ajout et suppression dynamique de noeuds
Pas de reconfiguration des autres noeuds
Croissance en taille des besoins informatiques
Systèmes toujours efficaces
Pas de limite d’augmentation en taille du système (en ressources
et en nombre d’utilisateurs)
Systèmes répartis/ Parallèles– Avantages et
Inconvénients-
e) Passage à l’échelle (Scalability) : dispersion géographique : mise à
disposition des usagers de services et ressources distantes (exemples :
Système de réservation (avions, trains, hôtels…), Système bancaire,
Contrôle aérien (découpage en secteurs, coordination des interactions
entre les secteurs), etc.)
f) Evolutivité : possibilité de rajouter des extensions logicielles
(fonctionnalités du SE, services de partage de ressources, etc.)
g) Non vulnérabilité : la répartition ne doit pas dégrader la sécurité. 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)
h) Fiabilité : rendre des services conformes à leurs spécifications
i) Facililité d’utilisation : cacher la répartition à l’utilisateur
Systèmes répartis/ Parallèles – Avantages et
Inconvénients-
Inconvénients
A. Le réseau peut très vite saturer
B. Pas d’état global : un noeud connaît son état local mais ne connaît que
l’état passé des autres noeuds (temps d’envoi de messages de demande
d’état)
C. Pas d’horloge globale : chaque noeud dispose de sa propre horloge pour
dater les événements locaux.
Non synchronisation des horloges → problème d’ordonnancement
des événements à partir des datations locales
D. Fiabilité relative
Chaque noeud est relativement indépendant des autres
→ La défaillance d’un noeud n’entraîne pas l’arrêt de tous les
services aux usagers (applications tolérantes aux fautes)
Nombre élevé de noeuds
→ Forte probabilité de panne
Systèmes répartis/ Parallèles– Avantages et
Inconvénients-
E. Sécurité relative
Architecture difficile à protéger
Points d’accès aux ressources multiples et localisations diverses (intra,
inter…) : nécessité d’authentifier l’utilisateur
Les noeuds peuvent apparaître et disparaître dynamiquement
→ On ne connaît pas toujours la totalité de l’architecture répartie
→ Difficulté pour administrer le système
F. Non déterminisme
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
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
Paradigmes de coopération
Architecture client - serveurs
Notion de client, service et serveur (ex : service
d’impression, de base de données).
Interaction synchrone entre le client et le
serveur: le client est bloqué tant que le serveur
n’a pas répondu.
Serveur concurrent (processus, thread) ; ex : ftp.
Serveur avec ou sans état.
Extensibilité, intégration de produits divers.
Diffusion, flots de données.
Client/serveur : extension naturelle de la notion de service dans un
environnement centralisé ... mais les pannes sont possibles : perte de la
requête ou de la réponse, panne du serveur ou du client.
Réincarnation du serveur si serveur avec état (synchronisation,
journalisation).
Paradigmes de coopération
Paradigmes des agents-
mobile
Agent autonome se déplaçant au grès
des machines pour réaliser ses tâches
[BER 99]. Possède un état.
Asynchrone ⇒mieux adapté que le
client/serveur à des traitements longs.
Exemple : recherche sur le Web,
administration réseaux ⇒ moins de
transfert de données.
Nouveaux problèmes : sécurité (de
l’agent, de l’hôte), mobilité du code,
désignation
CHAPITRE 2
GESTION DE TEMPS ET DES ETATS DANS
LES SYSTEMES DISTRIBUES/ PARALLELES