4.1k likes | 5.19k Views
Systèmes distribués. Christine MORIN IRISA/Université de Rennes 1 Projet INRIA PARIS Campus universitaire de Beaulieu 35 042 Rennes cedex (France) Christine.Morin@irisa.fr http://www.irisa.fr/paris. Plan du cours. Introduction Synchronisation Communication Gestion de la mémoire
E N D
Systèmes distribués Christine MORIN IRISA/Université de Rennes 1 Projet INRIA PARIS Campus universitaire de Beaulieu 35 042 Rennes cedex (France) Christine.Morin@irisa.fr http://www.irisa.fr/paris
Plan du cours • Introduction • Synchronisation • Communication • Gestion de la mémoire • Pagination en mémoire distante • Mémoire virtuellement partagée • Gestion des fichiers • Système de gestion de fichiers distribués • Système de gestion de fichiers parallèles • Gestion des processus • Sécurité • Haute disponibilité
Chapitre 1 Introduction
Introduction • Naissance des systèmes distribués • Avantages et inconvénients des systèmes distribués • Architecture matérielle • Conception de logiciel pour les systèmes distribués • Evolution du domaine • Applications • Axes de recherche
Naissance des systèmes distribués • 1945 • début de l’ère moderne des ordinateurs • Jusqu’en 1985 • époque des grands calculateurs centralisés très coûteux • Début des années 80 • Avènement des micro-ordinateurs • Micro-processeurs puissants produits en quantité (faible coût) • Réseaux locaux (LAN) • Interconnexion d’un grand nombre de machines • Transfert d’informations à 10 Mbits/seconde • Technologies : Ethernet (Xerox), Token Ring (IBM) • Il devient facile d’interconnecter des ordinateurs • Système distribué • Quel logiciel pour les systèmes distribués ?
Avantages des systèmes distribués • Par rapport aux systèmes centralisés • économique • excellent rapport performance/prix des microprocesseurs • puissance de calcul • un système pluri-processeur offre une puissance de calcul supérieure à celle d ’un seul processeur • distribution naturelle de certaines applications • système de contrôle d’une chaîne de production • distribution géographique d ’agences bancaires • haute disponibilité • la défaillance d ’une machine n’affecte pas les autres • évolution progressive
Avantages des systèmes distribués • Par rapport à des postes de travail indépendants • partage de données entre les utilisateurs • exemple : système de réservation aérienne • partage de périphériques coûteux • exemple : imprimante laser couleur, périphériques d’archivage • facilitation des communications entre personnes • courrier électronique • communication asynchrone • modification possible des documents échangés • flexibilité (distribution de la charge)
Inconvénients des systèmes distribués • Logiciel • relativement peu d’expérience de conception, mise en œuvre et utilisation de logiciels distribués • la distribution doit elle être transparente aux utilisateurs ? • Réseau de communication • saturation • perte de messages • Sécurité • facilité de partage de données rend nécessaire la protection des données confidentielles
Architecture matérielle Système distribué • ensemble de processeurs interconnectés Différentes architectures selon • le médium de communication • la façon dont les processeurs communiquent
Ordinateurs parallèles ou distribués (MIMD) Multiprocesseurs (mémoire partagée) Multicomputers (mémoire privée) Réseau Réseau Bus Bus Architecture matérielle Système distribué = architecture MIMD dans la classification de Flynn’s Architectures faiblement couplées Architectures fortement couplées Sequent, Encore RP3 Réseaulocal Hypercube
Mémoire partagée Bus Caches P1 P2 P3 P4 Processeurs Multiprocesseur à mémoire partagée fondé sur un bus
Multiprocesseur à mémoire partagée fondé sur un réseau • Multiprocesseur à mémoire partagée • Processeurs reliés aux modules mémoire par un switch de type crossbar ou omega • Multiprocesseur extensible à mémoire partagée • mémoire distribuée adressable à distance, réseau d’interconnexion rapide point à point • NUMA (CC-NUMA, COMA) • De la mémoire est associée à chaque processeur. Un processeur accède très rapidement à sa portion de mémoire mais accède avec une latence plus élevée à la mémoire des autres processeurs (Non Uniform Memory Access). • Problème de placement des données et des calculs
Multicomputer fondé sur un bus Réseau local de stations de travail Bus (LAN) Mémoire locale Processeur
Multicomputer fondé sur un réseau • Multiprocesseur à mémoire distribuée • Nœuds de calcul reliés par un réseau d’interconnexion • Intel Hypercube, Paragon (grille) • Chaque processeur possède sa propre mémoire privée
Terminologie • Système parallèle • Système distribué utilisé pour l’exécution d’une application gourmande en calcul et/ou mémoire • Multiprocesseurs à mémoire partagée et multicomputers fondés sur un réseau • Système distribué • Système distribué dans une utilisation pour de plusieurs tâches indépendantes • Réseaux de stations de travail • La frontière n’est pas très nette … • les grappes (clusters)
Ressources de calcul partagées :Processeurs, Mémoire, Disques Interconnexion Garantie d’une station de travail par personne (active) Utilisation globale des ressources à certains moments Réseau de stations de travail (grappe non dédiée)
Systèmes de communication rapide standard • Fibre optique • FCS (Fiber Channel Standard) • ATM (Asynchronous Transmission Mode) • SCI (Scalable Coherent Interface) • 100 Mo/s • … 1 Go/s • dépassement de la vitesse des communications entre processeurs dans un SMP • Myrinet • GigabitEthernet
Système distribué à grande échelle • Fondé sur un réseau longue distance E Internet A D B Site C Passerelle (routeur) Réseau physique
Conception de logiciel pour les systèmes distribués • Importance du système d’exploitation • Donne l’image de la machine pour l’utilisateur • Influence la façon de programmer la machine • Système d’exploitation entre l’architecture matérielle et les applications • Système d’exploitation pour un système distribué dépend • de l’architecture sous-jacente • des applications à exécuter • Applications indépendantes • Applications parallèles • Système d’exploitation • Faiblement couplé • Fortement couplé
Système d’exploitation pour système distribué • Multiprocesseurs à mémoire partagée • Système d’exploitation à temps partagé de type Unix • Plusieurs processeurs au lieu d’un seul • Illusion d’une machine mono-processeur pour l’utilisateur • Une seule copie du système d’exploitation sur la machine • Un processus peut s’exécuter sur n’importe quel processeur de la machine • Une file des processus prêts à s’exécuter conservée en mémoire partagée • Synchronisation pour l’accès aux structures de données partagées du noyau • Section critique pour l’exécution de l’ordonnanceur qui gère la file des processus prêts • Communication par mémoire partagée
Système d’exploitation pour système distribué • Multicomputers • Système d’exploitation faiblement couplé (network operating system) • Indépendance des machines • Un programme peut s’exécuter localement sans le réseau • Réseau permet le partage de ressources entre une communauté d’utilisateurs • Imprimante, serveur de fichiers • Connexion à distance • Une copie du système d’exploitation sur chaque machine • Système standard + services distribués (exemple NFS) • Hétérogénéité • Modèle client/serveur • Communication par fichiers partagés • NOW, Internet, GRID (Grands Systèmes Informatiques Distribués)
Système d’exploitation pour système distribué • Système intégré • Vision d’une machine unique (Single System Image) • Machine uni-processeur virtuelle • La multiplicité des ressources et leur distribution doivent être transparentes pour l’utilisateur • Nœuds anonymes • Un même système d’exploitation s’exécute sur chaque machine • Chaque machine possède sa copie locale du système d’exploitation • Communication par messages • Grappes de calculateurs
Objectif du cours • Architecture matérielle • Multicomputer • Réseau local de stations de travail • Grappe de calculateurs • Internet • Système d’exploitation • Services distribués dans un environnement de type réseau local • Systèmes à image unique • Notre définition d’un système d’exploitation distribué
Système à image unique(Single System Image) • Architecture matérielle • Ensemble de ressources physiques (mémoire, disque, processeur) distribuées sur différents nœuds • Mise en œuvre de ressources logiques (segment de mémoire virtuelle, fichier, processus) • Transparence • Partage • Extensibilité • Haute disponibilité
Transparence • Méthode d’accès aux ressources logiques indépendante de leur localisation • Exemple : accès aux fichiers locaux et distants • Migration des ressources logiques sans modifier la méthode d’accès • Exemple : migration d’un fichier sans changement de nom
Partage • Partage logique • Ressources logiques peuvent être partagées par des applications sans modifier la méthode d’accès • Exemple : partage d’un fichier, partage d’un segment de mémoire virtuelle • Sémantique d’accès aux ressources bien définie en présence de multiples utilisateurs • Transparence de la concurrence • Partage physique • Partage des ressources physiques des nœuds entre plusieurs applications • Possibilité pour une application d’utiliser des ressources physiques situées sur différents nœuds • Transparence du parallélisme
Extensibilité • Extensibilité des performances • L’augmentation des ressources physiques conduit à une augmentation des performances globales du système • Décentralisation • Aucun nœud ne connaît l’état global du système • Chaque nœud doit prendre des décisions en fonction des informations disponibles localement • La défaillance d’un nœud ne doit pas empêcher le bon fonctionnement du système • Il n’existe pas d’horloge globale dans le système • Transparence de la réplication • Les multiples copies d’une donnée gérées par le système d’exploitation doivent être transparentes pour les utilisateurs
Extensibilité • Transparence à l’extensibilité • Ajout de nouveaux nœuds • Retrait (prévu) de nœuds • Intégration ou suppression de ressources sans arrêt du système et sans perturbation pour les applications en cours d’exécution • Gestion dynamique des ressources • Reconfiguration du système
Haute disponibilité • Haute disponibilité • Défaillance d’un nœud n’entraîne pas l’indisponibilité du système sur les autres nœuds • Seules les applications utilisant les ressources physiques du nœud défaillant peuvent être perturbées. • Il reste possible de lancer de nouvelles applications sur la grappe, privée du nœud défaillant • Reconfiguration du système • Reprise d’applications • Pas de perte des ressources logiques • Point de reprise d’applications
Flexibilité • Possibilité d’ajouter de nouveaux services • Deux approches dans la conception des systèmes d’exploitation distribués • Système monolithique • Chaque nœud met en œuvre localement les différents services • Micro-noyau • Système d ’exploitation conçu comme un ensemble de serveurs en mode utilisateur au dessus du micro-noyau • Micro-noyau met en œuvre les fonctions de base et réalise l’interface avec le matériel • Communication inter-processus • Serveurs réalisent les fonctions classiques d’un système d ’exploitation • gestion mémoire • gestion de fichiers • gestion des processus
Evolution du domaine • Facteurs d’évolution • Evolution de la demande et des moyens • Besoin des utilisateurs • nouvelles applications (multimédia, mobilité, …) • Evolution technologique • informatique • réseau • Globalisation des systèmes d’information • facteur d’échelle
Progrès technologiques • Architecture matérielle des machines • vitesse des processeurs • capacité d’adressage • capacité mémoire et disque • Réseaux • débit (ATM) • connectivité (réseaux mobiles) • Systèmes • systèmes ouverts (standard) • micro-noyaux et systèmes spécialisés
Impact des progrès technologiques • Grand espace d ’adressage et réseaux haut débit • mémoire virtuelle répartie • partage d’informations complexes selon différents degrés de cohérence • Disques de grande taille, réseaux haut débit et connectivité • Web • GRID
Facteurs d’échelle • Système réparti de grande taille • Nombre d ’entités • nombre d ’éléments constituants • nombre d ’utilisateurs • nombre et taille des informations • Complexité • Etendue géographique • Besoins • extensibilité (désignation, localisation, recherche d ’information, communication) • maîtrise de la complexité
Effets des facteurs d’échelle • hétérogénéité • cohérence des informations • composition du système à un instant donné • défaillance ou indisponibilité de sous-systèmes • mobilité des machines, utilisateurs et informations
Problèmes liés à la taille du système • Désignation • abandon des identificateurs universels • usage de caches • Performance et qualité de service • Disponibilité • réplication • Sécurité • authentification, cryptographie • Administration • complexité et hétérogénéité
Applications • Applications scientifiques • Calcul parallèle • Besoin de puissance de calcul et de mémoire • Minimisation du temps de réponse • Partage de mémoire sur une architecture à mémoire distribuée (mémoire virtuellement partagée) • Applications coopératives • Système de réservation de places d’avion • Système de gestion d’agences bancaires • Applications multimédias
Applications • Applications multimédias • gestion simultanée d’informations de nature différente : son, image, texte avec une synchronisation de différents flux d’informations • applications orientées grand public • abonnement et équipement dédiés chez les abonnés • Exemples • vidéo à la demande (magnétoscope virtuel) • réunion virtuelle (communication et partage d’information) avec stations de travail multimédias • commerce électronique, presse électronique
Applications • Besoins • qualité de service • temps réel mou • disponibilité • sécurité • qualité des informations transmises (son, image) • solutions fondées sur des techniques de réservation de ressources et l’utilisation de réseaux à haut débit • synchronisation multi-utilisateur • communication de groupe • cohérence de l’information traitée (tableau virtuel)
Applications • Courrier électronique et le Web • mise en relation entre un ou plusieurs utilisateurs identifiés ou non • échange d ’informations • consultation de données multimédias • Problématique • désignation (système extensible) • grand nombre d’utilisateurs • hétérogénéité • réseaux • systèmes d’exploitation et des logiciels
Applications • Solutions • protocole IP indépendant des architectures sous-jacentes • transparence de la localisation des informations accédées • affichage standard de l’information (HTML) • réseaux à haut débit et nœuds de routage performants
Applications • Applications temps réel dur • systèmes temps réels à sûreté critique • exemples • systèmes embarqués : avionique, automobile, ... • Problématique • respect des échéances temporelles • défaillance catastrophique en cas de non respect des échéances • Solutions • modèle de tâches • comportement prévisible, temps d ’exécution maximal • algorithmes d ’ordonnancement • tests de faisabilité
Axes de recherche • Architecture des systèmes • nano-noyaux • système pour les nouvelles architectures parallèles (multiprocesseurs extensibles) • Systèmes distribués pour des réseaux à très haut débit (100 Mbits/s à 1 Gbits/s) • Systèmes pour grappes • multiprocesseur virtuel • serveur extensible pour les services grand public • Systèmes distribués à très grande échelle • intégration des réseaux de télécommunication • Internet • GRID (Middleware)
Axes de recherche • Systèmes distribués incluant des sites mobiles construits avec des réseaux sans fil • Ubiquité • Mobilité des calculs, données, utilisateurs, machines • Support pour le travail coopératif • multimédia, communication de groupe, cohérence • Tolérance aux fautes • disponibilité et temps-réel • Environnements de développement d’applications réparties • architecture logicielle (composants)
Bibliographie • Construction des systèmes d’exploitation répartis, R. Balter, J.-P. Banâtre, S. Krakowiak éditeurs, INRIA collection didactique, 1991. • Modern Operating Systems, A. Tanenbaum, Prentice-Hall International Editions, 1992. • [Rozier et al 1988]Chorus Distributed Operating Systems, Computing Systems, Vol 1, No 4, octobre 1988. • [Accetta et al 1986]Mach : a new kernel foundation for Unix Development, Proc of Usenix Summer conference 1986. • [Cheriton 1988]The V Distributed System, Communications of the ACM, Vol 31, No3, 1988.
Chapitre 2 Synchronisation