Licence Fondamentale en Informatique 3ieme Année ISIMM Cours Systèmes Répartis 1 Année Universitaire:
Plan 1. Introduction et Caractéristiques 2. Algorithmique et Exécution Répartis 3. L’éléction 4. Détection de la terminaison 5. L’interblocage 2 Année Universitaire:
Systèmes Répartis Introduction et Caractéristiques 3 Année Universitaire:
Les réseaux Année Universitaire: Réseau= Machines+ Routeurs Les routeurs cheminent les messages échangés au moyen de plusieurs communication point à point. Chaque machine est identifiée de manière unique dans le réseau par son adresse Chaque routeur a une table de routage qui donne l’adresse du routeur voisin qui permet au message d’atteindre le destinataire.
Les réseaux Année Universitaire: Nouvelles technologies (Multiprocessing, haut débit, etc,) PLUS indépendance de traitements faits par les processus (Autorisation de s’exécuter simultanément) Incitation à développer des programmes comme des ensemble de processus parallèles. Exemples: Un réseau de station de travail dans une université Un réseau de grande entreprise réparti dans le pays Le World Wide Web pour voir un document, l’utilisateur active une référence et le document apparait Pas besoin de savoir d’où il vient, sur quel serveur il est stocké,etc.
Motivations Année Universitaire: Cout et performances des machines et des communications Interconnexion généralisé (accessibilité immédiates des ressources distantes) Interpénétration informatique-télécom-télévision
L’Informatique Répartis Année Universitaire: C’est le fait de concevoir des applications répartis applications faisant intervenir un réseau informatique pour être correctement exécutée.
Pourquoi les applications répartis? Année Universitaire: Raisons budgétaires Economie de logiciel, de matériels Besoin de partager Des ressources ;imprimantes, serveurs, mémoires Des informations: bases de données, fichiers Accélérer les traitements en parallélisant les taches 1 problèmes de taille N en T secondes Alléger le réseau Diminuer les échanges de données redondantes Augmenter la fiabilité Duplication des données Atteindre des niveaux de qualité de service Diminuer les couts, les délais
Eléments des applications répartis Année Universitaire: Eléments =Processus + Voies de connexions Les processus Unités de programme qui reçoivent, manipulent, transforme et émettent des données Les voies de communications liaisons sur lesquelles circulent les données formant un réseau
Eléments des applications répartis Année Universitaire: Les processus : pour exécuter un programme, un système distribué crée un nombre de processus, chacun pour l’exécution d’une tache différente. Le système possède une table de processus, contenant des entrées pour stocker des valeurs CPU, des cartes mémoires… processus : un programme en cours d’execution sur l’un des processeurs du systèmes Les processus ne doivent pas influer le comportement des uns et des autres: transparence de concurrence Les processus coopérants agissent ensemble pour atteindre une tache Les processus permettant d’atteindre des niveaux plus ou moins élevés de parallélisme.
Eléments des applications répartis Année Universitaire: Les voies de communications Différentes topologies différentes propriétés Maillage en anneau un processus ne connait que ses 2 voisins un anneau peut être uni ou bi directionnel Maillage en étoile un processus P peut communiquer avec tous les autres processus et chacun d’eux ne peut communiquer qu’avec P
Eléments des applications répartis Année Universitaire: Les voies de communications Différentes topologies différentes propriétés Maillage en arbre Structure des voies de connexions sous forme d’arbre A chaque nœud est associé un processus qui ne peut communiquer qu’avec son père et ses fils. Maillage complet tout processus peut communiquer avec tout autre processus. Graphe complet ou chaque sommet modélise un processus.
Exercices D’applications Année Universitaire: ) Qu’est ce qu’un système répartis ? 2) Les termes suivants représentent certaines caractéristiques des applications réparties : Organisation Coordination Communication Sécurité Disponibilité Définir ces termes dans le cas général, et montrer leur impact dans le cadre des systèmes répartis
En fait… Année Universitaire: Caractéristiques d’un système informatique réparti: Constitué d’un ensemble de composants matériels (ordinateurs, organes d’entrée sortie, processeurs spécialisés, dispositifs de commande ou de mesure, etc.), interconnectés par un réseau de communication. Composants ne fonctionnant pas de manière indépendante, mais coopérants pour l’exécution de tache commune. Le système pouvant continuer à fonctionner (éventuellement en mode dégradé) malgré les défaillances partielles des composants ou du réseau de communication.
Donc de nouveaux problèmes Année Universitaire: Etat du système et datation des événements Désignation Communications et exécution répartis Tolérance eux fautes Sécurité et protection
Donc de nouveaux problèmes Année Universitaire: Etat du système et datation des événements absence de mémoire et de référence de temps communs difficulté d’un ordre global pour les événements Désignation Communications et exécution répartis Tolérance eux fautes Sécurité et protection
Donc de nouveaux problèmes Année Universitaire: Etat du système et datation des événements Désignation Grande taille de l’espace des noms et évolution permanente de l’ensemble des objets désignés et de leur localisation Communications et exécution répartis Tolérance eux fautes Sécurité et protection
Donc de nouveaux problèmes Année Universitaire: Etat du système et datation des événements Désignation Communications et exécution répartis Gestion et synchnonisation des processus :Exlusion mutuelle, interblocage, terminaison, election, diffusion, etc… Tolérance eux fautes Sécurité et protection
Donc de nouveaux problèmes Année Universitaire: Etat du système et datation des événements Désignation Communications et exécution répartis Tolérance eux fautes Probabilité d’une défaillance partielle du système non négligeable Sécurité et protection
Donc de nouveaux problèmes Année Universitaire: Etat du système et datation des événements Désignation Communications et exécution répartis Tolérance eux fautes Sécurité et protection Système accessible par plusieurs points La sécurité d’un système réparti : garantir le maintien de la confidentialité et de leur intégrité de l’information et le respect des règles d’accès aux services.
Et de nouveaux besoins Année Universitaire: La transparence L’abstraction La récupération de l’existant La capacité d’évolution
Et de nouveaux besoins Année Universitaire: La Transparence: Propriété d’indépendance, par rapport à la localisation physique, pour l'accès aux informations et aux services Permet d’utiliser un service distant de la même manière qu'un service local ou de déplacer des informations ou des services d'un site à un autre sans changement visible pour les programmes ou les personnes qui les utilisent.
Et de nouveaux besoins Année Universitaire: La Transparence: Plusieurs formes de transparence (ISO 1995) d’accès: cacher la différence des représentation des données et comment une ressource est accédée de localisation: cacher l’endroit où une ressource est localisée de migration: cacher qu’une ressource peut bouger vers une autre localisation de réplication: cacher qu’une ressource est répliquée de concurrence: cacher qu’une ressource peut être partagée par plusieurs utilisateurs compétitifs de panne: cacher une panne et un recouvrement d’une ressource de persistance: cacher si une ressource (logicielle) est dans une mémoire volatile ou sur disque
Et de nouveaux besoins Année Universitaire: La Transparence :Dans certains cas, la transparence doit au contraire être évitée. ex : Mise au point d'applications réparties recherche de l'origine d'une défaillance pouvoir connaître la localisation physique des données manipulées ou le site d'exécution d'un programme. Contrôle de l'exécution :Pour des raison de performance (équilibrage de charge), d'administration des ressources, ou de sécurité contrôler ou imposer explicitement le site de stockage de données ou le site d'exécution d'un service. Compromis entre un degré élevé de transparence et les performances du système !!!!!
Et de nouveaux besoins Année Universitaire: L’abstraction :Séparation entre interface d'accès à un service et réalisation de ce service. Construction d’applications par assemblage de composants, et de remplacement d’un composant par un autre à condition qu'il ait la même interface.
Et de nouveaux besoins Année Universitaire: L’abstraction :Deux propriétés fondamentales L’interopérabilité: deux composants ou deux implémentations différentes d’un même système de deux constructeurs différents peuvent co-exister et travailler ensemble La portabilité: une application peut être exécutée dans deux systèmes distribués différents sans modification
Et de nouveaux besoins Année Universitaire: La récupération de l’existant: Construction d’applications réparties en ajoutant des capacités d'accès à distance ou d'intercommunication à des applications existantes. La réutilisation d’une part importante du logiciel qui compose ces applications Réduire le coût de développement et assurer la continuité du service
Et de nouveaux besoins Année Universitaire: La capacité d’évolution (scalability) : Évolution rapide des applications faire face à l'évolution des besoins, aux modifications de l'environnement (systèmes, outils, infrastructure de communications), et à la croissance de la demande. Cette évolution doit se faire de manière continue et sans interruption du service. La scalabilité mesurée selon au moins 3 dimensions: Selon la taille: nombre de ressources et d’utilisateurs De manière géographique: distance entre ressources De manière administrative: nombre d’administrateurs Plus un système est scalable moins il est performant !!!!!
Et de nouveaux besoins Année Universitaire: La Scalabilité Taille: Le réseau devient un goulot d’étranglement au fur et à mesure que le nombre de ressources augmentent Géo: Des liaisons plus longues donc délais importants, problème de différences d’horloges entre les ressources Admi: plus de messages de signalisation et saturation du réseau, différence de technique de sécurité, de gestion et de paiement Solutions: Appel à des communications asynchrones (des taches peuvent être programmées pour exécution pendant que d’autres attendent la fin de communication) et à la distribution (diviser un composants en petites parties et répartir dans le système).
Exercices D’applications Année Universitaire: ) Qu’elle est la différence entre un système centralisé et un système réparti (distribué)? 2) Que répartir dans les systèmes distribués ? Les données Le traitements Le controle
Parallélisme et Distribution Année Universitaire: Processus En compétition pour l’accès aux ressources Gestion de la concurrence & Synchronisation En coopération pour un but commun Gestion de la communication inter-processus
Parallélisme et Distribution Année Universitaire: La définition d’un algorithme distribué nécessite: Le concept de messages La définition de primitives d’envoi et de réception L’adoption d’un protocole d’échange de données
Parallélisme et Distribution Année Universitaire: Chaque composant ne reconnaît que son propre environnement: L’état de ses variables Les évènements qu’il gère La situation de ses émissions et réceptions Absence d’un état global
Parallélisme et Distribution Année Universitaire: Chaque composant n’a accès qu’aux informations situées dans sa propre mémoire locale Absence d’une mémoire globale
Parallélisme et Distribution Année Universitaire: Une faute dans l’un des composants ne doit pas empêcher le système de fonctionner Tolérance aux fautes
Parallélisme et distribution Année Universitaire: Caractéristiques des systèmes distribués: Absence de mémoire commune Absence d’état global Utilisation d’un protocole de communication Tolérance aux fautes
Répartition Année Universitaire: Question: QUE REPARTIR ?? Les données Le traitement Le contrôle
Répartition des données Année Universitaire: Objectifs Limiter le transfert d’informations Répartition des données là où elles sont le plus utilisées Accroître les performances Répartition des charges de travail sur plusieurs unités de traitement opérant en parallèle Augmenter la fiabilité Même traitement par plusieurs ordinateurs Etendre la disponibilité des informations Ex: annuaire tel dont chaque ville importante possède un exemplaire Faire croître en souplesse une BD Coopérer l’existant avec le nouveau
Répartition des traitements Année Universitaire: Absence de mémoire commune Absence d’état global Difficulté de synchroniser entre les différents traitements Recours aux horloges logiques établir un ordre entre les évènements répartir le traitement des taches
Répartition des contrôles Année Universitaire: Si pas de relation hiérarchique statique entre les processus Pas de processus maître qui assure le contrôle global du système Gestion de transaction distribuées Election d’un processus maître
Conclusion Année Universitaire: Applications réparties => Communication entre les processus selon une topologie particulière (anneau logique, structure arborescente) et selon une discipline prédéfinie Algorithmes distribués (vs. Centralisés) propriétés: Aucune machine n’a une information complète sur l’état du système Les machines prennent des décisions en se basant uniquement sur l’information locales qu’elles possèdent Une panne d’une des machines ne doit pas ruiner l’algorithme Il n’existe aucune hypothèse qu’une horloge globale existe Comment gérer le temps dans les systèmes répartis?
Exercices D’applications Année Universitaire: ) Calculer le nombre de messages échangés pour une opération de synchronisation. 2) Qu’est ce qu’un état local? 3) Définir donc l’ordre global? 4) Peut-on avoir un ordre global dans les systèmes répartis? Pourquoi?
Trafic engendré Année Universitaire: Le nombre de messages échangés pour une opération de synchronisation et les temps d’attente => charge du réseau Ex: Informer les autres processus (N-1) de l’utilisation d’une mémoire partagée 3(N-1) messages : N-1 msgs, N-1 réponses, N-1 fin 2(N-1) messages : N-1 msgs, N-1 réponses 0-2(N-1) : si pas reçu de demandes et processus dans la mémoire
État global ou local Année Universitaire: Etat global = états locaux de tous les processus + les messages en transit Connaître l’état global peut être utile par ex en cas d’interblocage (état global constant pendant une certaine période) Plus il est facile d’avoir un état global, mieux le système est réparti