Systèmes parallèles et distribués
1
Systèmes parallèles et distribués
1- Introduction
2- Architecture d’un système
d’exploitation distribué ou réparti
3- Communications dans les systèmes
distribués
4- Gestion répartie des fichiers
5- Protection
2
Systèmes parallèles et distribués
Introduction
3
Introduction
SYSTÈME Expl. DISTRIBUÉ = SYSTÈME POSSÈDANT
PLUSIEURS PROCESSEURS COOPÉRANTS
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
4
Introduction
Avantages
partage de données
partage de périphériques
Communication
souplesse (politiques de placement)
Inconvénients
logiciels : moins de logiciels disponibles
réseaux : saturation et délais
sécurité : piratage
5
Introduction
Classification de Flynn (1972)
nombre des flux d'instructions
nombre des flux de données
SISD : un seul flux d'instruction et un seul flux
de données (ordinateurs centralisés)
SIMD : un seul flux d'instruction et de multiples
flux de données (machines //, vectorielles)
MISD : multiples flux d'instruction et un seul
flux de données (pas de machine réelle )
MIMD : multiples flux d'instruction et de
multiples flux de données
6
Introduction
M IM D
S y s t è m e s p a r a l lè le s e t d i s t r i b u é s
Fortement Faiblement
couplés couplés
M u lt i p r o c e s s e u r s M u l t i c a lc u la t e u r s
m é m o ir e s p a r ta g é e s M é m o ir e s p r iv é e s
Bus C o m m u ta te u r C o m m u ta te u r R é se au
•Stations de travail sur LAN
•Sequent Encore •RP3 et SPx •Transputer
•Grappes de PC sur
d’IBM •Machines parallèles à Etherswitch, ou réseau Myrinet
•Sun Enterprise mémoires réparties
Serveurs •Grilles sur WAN 7
Introduction
Classification
La classification est parfois floue et imprécise
Systèmes d’exploitation faiblement couplés
réseaux d'ordinateurs indépendants
(et alors les ordinateurs indépendants avec réseau
défaillant continuent +/- à fonctionner)
Systèmes d’exploitation fortement couplés
multiprocesseurs faits pour exécuter un seul
programme en // (jeu d'échecs, calcul scientifique)
machines dédiées (// intra-requete sur BDs cf Oracle
//, Informix, etc) 8
Introduction
Systèmes d’exploitation
Multiprocesseurs distribués
multicalculateurs Systèmes d’exploitation
S.E faiblement couplé
réseau
S.E fortement couplé Systèmes multiprocesseurs
à temps partagé
9
Introduction
La combinaison la plus fréquente : matériels
et logiciels faiblement couplés
Connexion point à point
Postes avec SE indépendants
Partage des imprimantes
Accès à un autre poste en mode terminal
Réseaux locaux Internet
FTP, TELNET
Stations NT
Windows Workgroups HTTP, RTLOGIN, …
10
Introduction
Système d’exploitation réseau
Postes indépendants + serveurs de fichiers
Systèmes de fichiers partagés NFS
Gestion centrale des utilisateurs CD, NIS, …
Novell, LanManager
Unix +NFS, NTServer Services
Serveur
Poste Poste Poste
De
client client client
Fichiers
Question
Réponse 11
LAN
Introduction
Systèmes distribués
Un système distribué est un système qui
s'exécute sur un ensemble de machines sans
mémoire partagée , mais que l'utilisateur voit
comme une seule et unique machine au point que
la défaillance d'une machine dont l'utilisateur
ignore jusqu'à l'existence peut rendre sa propre
machine inutilisable ...
12
Introduction
Caractéristiques
Possédant un mécanisme de communication interprocessus
unique et global permettant le dialogue entre deux
processus quelconques
Possédant un système de protection unique et global
Possédant un mécanisme de gestion de processus unique
Possédant un ensemble d'appels système unique, disponible
sur toutes les machines
Possédant un noyau de système d'exploitation identique
implanté sur toutes les machines
Possédant un mécanisme de gestion de mémoire identique
13
Introduction
Système multiprocesseur à temps partagé
Un ensemble de processeurs "symétriques"
Une mémoire commune et un espace disque commun
Tous les programmes sont stockés dans la mémoire
partagée
Une file d'attente unique des processus exécutables
se trouvent dans la mémoire partagée
L'Ordonnanceur travaille en section critique pour
éviter que deux UC ne choisissent le même processus à
exécuter
L'exclusion mutuelle peut être réalisée en utilisant des
sémaphores, moniteurs, ... 14
Introduction
Mémoire
E prêt
UC UC UC D prêt
1 2 3 C en exécution
Processus A Processus B Processus C
en exécution en exécution en exécution B en exécution
Cache Cache Cache A en exécution Disque local
File d’exécution :
D, E
Noyau SE
bus
15
Introduction
Tableau de synthèse sur la classification des systèmes
d’exploitation
S.E.
Questions S.E.Rés [Link].
[Link].
Ressemble-t-il à un monoprocesseur virtuel Non Oui Oui
Doit-on avoir le même système d’exploitation
Non Oui Oui
’’ local ’’
Combien y-t-il de copies du système d’exploitation N N 1
Fichiers partagés Mémoire
Quel mode de communication d’information naturel + Messages
Messages Partagée
Non Mais
Existe-t-il une seule file d’attente des exécutables Non Oui
coopération
16
Introduction
Critère de conception d’un S.E.D ou d’un système opératoire sur
une architecture distribuée
Transparence
Même mode d'utilisation que celui d'un système centralisé à
temps partagé :
au niveau d'un l'utilisateur et au niveau d'un programme (appels au
Type de Transparence
système ) Signification
Transparence à l’emplacement
L'utilisateur ne connaît pas où sont situées les ressources
Les ressources peuvent être déplacées sans modification
Transparence à la migration
de leur nom
Transparence à la duplication
L'utilisateur ne connaît pas le nombre de copies existantes
Plusieurs utilisateurs peuvent partager en même temps les
Transparence à la concurrence
mêmes ressources
Des tâches peuvent s'exécuter en parallèle sans que les
Transparence au parallélisme
utilisateurs le sachent 17
Introduction
Souplesse
Facilité de modification, de configuration et d’extension
Utilisateur Serveur Serveur de Serveur de
Utilisateur processus
de répertoires
Noyau Fichiers
Micronoya
Micronoyau Micronoyau Micronoyau
Monolithique u
Bus / Réseaux
École locaux
École Micronoyau
Monolithique Windows NT Idée intéressante qui permet de bâtir
1ers un système opératoire pour grappe
Unix ou grille, sur des systèmes
d’exploitation usuels
Linux Mach
‘‘Unix/Posix’’
18
Introduction
Fiabilité
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) Sécurité
→ Savoir maintenir la cohérence des copies
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
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é (NFS sans état par exemple)
19
Introduction
Performances
Critères
Temps de réponse
Débit ‘‘Nombre de travaux par heure’’
Taux d’utilisation du système
Pourcentage d’utilisation de la bande
passante du réseau
20
Introduction
Problèmes
La communication est en général assez lente dans les
systèmes distribués par rapport à l’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 par exemple en faisant
en sorte de :
Maximiser des granules grosses (gros grains) et éviter
des grains fins pour les calculs à distance
Réduire le champ d'application des mécanismes de
reprises sur pannes (car cela engendre des transmissions
d'information, et donc, les réserver aux parties critiques)
21
Introduction
Dimensionnement
Goulots d’étranglement potentiels
Concepts Exemple
Un seul serveur de courrier pour les
Composants centralisés
utilisateurs
Tables centralisés Un seul annuaire en ligne
Avoir un routage qui nécessite une
Algorithmes centralisés
connaissance totale du réseau
22
Introduction
Caractéristiques des algorithmes distribués
Aucun processus n'a une information complète sur
l'état du système
Les processus prennent des décisions à partir des
seules informations locales disponibles
La panne d'un processus n'empêche pas
l'algorithme de fonctionner
On ne fait pas l'hypothèse de l'existence d'une
horloge physique globale entre les machines sur
lesquelles tournent les processus mettant en
oeuvre l'algorithme 23
Structuration des systèmes
Monolithiques;
A couches;
Client/Serveurs ou Micro-noyau.
24
Structure d’un système monolithique
Collection de procédures qui collaborent à
la réalisation de fonctions complexes.
Chaque procédure est visible a toutes les
autres, et peut appeler a tout moment
n'importe quelle autre;
Exemple: UNIX
25
Structure d’un système monolithique
Les services (Appels système) offerts par
le SE sont adressées en :
mettant les paramètres dans des
registres ou la pile; et en exécutant une
instruction spéciale nommée appel au
noyau ou appel au superviseur;
Le SE examine alors les paramètres pour
déterminer l'appel système a exécuter
(pointeur sur l'appel système)
26
Structure d’un système monolithique
Le SE appelle la procédure
correspondante (localisation et
identification du service, qui est ensuite
appelé);
Le contrôle est rendu au programme de
l'utilisateur;
27
Structure d’un système monolithique
Système monolithique
Le système = un ensemble de procédure dont
chacune peut appeler n’importe quelle autre.
contraintes
Absence de structure
Absence d’encapsulation
Visibilité réciproque des procédures
28
Structure d’un système monolithique
Un simple modèle de structuration
d’un système monolithique
29
Structure d’un système à couches
Vu comme un ensemble de couches logiciels
superposées.
Chaque couche utilise les couches inférieures
et fournis un service supplémentaire aux
couches supérieures
Exemple: THE, MULTICS,..
30
Structure d’un système à couches
utilisateur
utilisateur
Inter de com Prog. d’app
Inter de com Prog. d’app
Gérant de fichiers
Gérant de fichiers
Allocation de ressources
Gestion des périphériques
Gestion des E/S
et d ’Interruptions
Gestion de la Mémoire
Matériel Gestion des IT et des processus
Mono-utilisateur Matériel
monotâche Idéal 31
Structure d’un système micro-noyau
Micro-noyau
Principe : Un noyau minimaliste et tout
le reste du sytème sous forme de
service en espace utilisateur
On construit n’importe quel système
au dessus du noyau
32
Structure d’un système micro-noyau
Déplacer le plus possible du noyau en espace
utilisateur
Place à la communication entre les module
utilisateur par passage de messages
avantages:
facilité d’extension du micronoyau
facilité de portabilité du système d’exploitation
vers de nouvelles architectures
plus fiable (moins de code en exécution en mode
noyau)
plus de sécurité
33
Structure d’un système micro-noyau
Certaines fonctions complexes du système sont
sorties du système proprement dit et confiées
à des serveurs indépendants (serveur de
fichiers, de mémoire, etc…)
Les processus utilisateur (clients) et les
serveurs s ’exécutent en mode utilisateur;
La communication entre clients et serveurs se
fait par envoi de messages à travers le noyau
du système (mode noyau)
34
Structure d’un système micro-noyau
Système configurable: changer les serveurs
pour obtenir une meilleur adéquation;
Système transportable: il suffit de réécrire la
couche micro-noyau qui coordonne tous les
serveurs;
Incorporation des systèmes existants(DOS,
UNIX)
Se prête bien à une utilisation sur les systèmes
distribués(Amoeba, Mach, …).
35
Structure d’un système micro-noyau
Modèle de client-server
36
Structure d’un système micro-noyau
Modèle de client-server dans
un système distribué
37
Structure d’un système micro-noyau
Structure Windows NT Client-Server
38
39
Qu'est ce qu'un système
réparti ?
On peut employer le terme de système
réparti ou distribué lorsque le système
dispose d'un ensemble de processus
communicants, installés sur une
architecture de processeurs, dans le but
de résoudre en coopération un problème
commun
40
Un système réparti doit s'appliquer à
créer, sur cette architecture, une
machine virtuelle unique dans le but de
faire abstraction de la distribution de
l'architecture. L'utilisateur doit, par le
biais de ce système, avoir une vue
globale de celle-ci et utiliser ses
fonctionnalités sans se préoccuper du
lieu où celles-ci sont mises en oeuvre.
Le schéma ci-dessous présente un
exemple d'architecture distribuée.
41
42
Un système réparti est une couche
logicielle au dessus de la couche
matérielle. Il est susceptible d'utiliser
un ensemble de machines hétérogènes,
appelées plus communément "sites".
Chaque site peut avoir un ou plusieurs
processeurs, de la mémoire, une horloge
et des capacités de stockage ( disques ).
43
La communication entre les sites est
assurée via un réseau d'interconnexion
qui peut être un réseau local, voire un
réseau plus large ou tout simplement un
réseau de processeurs sur une machine
parallèle. Cette approche du système
réparti est proche de celle énoncée par
Tanenbaum et Van Renesse
44