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 couplés
Faiblement couplés
M u lt i p r o c e s s e u r s m é m o ir e s p a r ta g é e s
Bus
C o m m u ta te u r
•Sequent Encore •RP3 et SPx d’IBM •Sun Enterprise Serveurs
M u l t i c a lc u la t e u r s M é m o ir e s p r iv é e s
C o m m u ta te u r •Transputer •Machines parallèles à mémoires réparties
R é se au •Stations de travail sur LAN •Grappes de PC sur Etherswitch, ou réseau Myrinet •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 distribués
Multiprocesseurs 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 Internet Réseaux locaux 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 Poste client
Serveur De Fichiers Question
Poste client
Poste client
LAN
Réponse
11
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 14 sémaphores, moniteurs, ...
Introduction
Mémoire E prêt
UC 1
Processus A en exécution Cache
UC 2
Processus B en exécution Cache
UC 3
Processus C en exécution Cache
D prêt C en exécution B en exécution 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 Questions
S.E.Rés
S.E.Dist.
S.E. Mem.Par.
Ressemble-t-il à un monoprocesseur virtuel
Non
Oui
Oui
Doit-on avoir le même système d’exploitation ’’ local ’’
Non
Oui
Oui
Combien y-t-il de copies du système d’exploitation
N
N
1
Messages
Mémoire Partagée
Non Mais coopération
Oui
Quel mode de communication d’information naturel Existe-t-il une seule file d’attente des exécutables
Fichiers partagés + Messages
Non
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 Signification système ) 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
Facilité de modification, de configuration et d’extension Utilisateur
Utilisateur Noyau Monolithique
École Monolithique
1 Unix Linux
Souplesse
Micronoyau
Serveur de Fichiers Micronoya u
Windows NT
Mach ‘‘Unix/Posix’’
ers
Serveur de répertoires
Serveur de processus
Micronoyau
Micronoyau
École Micronoyau
Bus / Réseaux locaux
Idée intéressante qui permet de bâtir un système opératoire pour grappe ou grille, sur des systèmes d’exploitation usuels
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
Composants centralisés
Un seul serveur de courrier pour les utilisateurs
Tables centralisés
Un seul annuaire en ligne
Algorithmes centralisés
Avoir un routage qui nécessite une 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 Inter de com
Prog. d’app
Gérant de fichiers Gestion des périphériques et d ’Interruptions
utilisateur Inter de com
Prog. d’app
Gérant de fichiers Allocation de ressources Gestion des E/S Gestion de la Mémoire
Matériel Mono-utilisateur monotâche
Gestion des IT et des processus
Matériel 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