Faculté des Sciences de Tunis Département des Sciences de l Informatique SECTION IF4 (Ingénieur en Informatique) Matière Système d Exploitation 2009/2010 IF4 1
PARTIE 8 Temps et ordre 2
Ordonnancement (1) Objectifs Définir un ordre entre les événements d un système Nécessaire pour prendre des décisions Allocation, Préemption, Cas centralisé Ordonnancement toujours possible Horloge physique unique Dates différentes pour 2 événements 3
Ordonnancement (2) Contraintes en réparti Absence de mémoire commune Support d un état Espace de stockage de l état Absence d horloge commune Impossibilité d ordonner Difficulté de définir un temps unique Asynchronisme des communications Asynchronisme des traitements 4
Ordonnancement (3) Utilité Raisonnement sur Système Application Définir et vérifier des propriétés Vérifier ces propriétés sur des états Suivre leur évolution Coordination Définir un ordre entre événements 5
Propriétés (1) Objectif Vérifier l état d un système Classes de propriétés Sûreté (Safety) Vérifier qu un événement n arrivera jamais Evénement non désirable Exclusion mutuelle Incohérence de données Deadlock 6
Propriétés (2) Vivacité (Liveness) Souhaiter l arrivée d un événement Evénement désirable Message délivré à son destinataire Fin d un algorithme Sortie d une section critique Libération d une ressource 7
Modèles temporels (1) Modèle asynchrone Modéliser le monde réel Prendre en compte l asynchronisme Caractéristiques Le plus faible mais le plus fiable Impose des contraintes relativement fortes N offre aucune borne temporelle Possibilités de relaxer les contraintes du modèle 8
Modèles temporels (2) Principes Communication par messages Un émetteur et un récepteur Evénements possibles Evénements locaux Evénement de calcul (pas de communication) Emission de message Réception de message Absences de bornes Transmission d un message Vitesse d exécution des processus 9
Modèles temporels (3) 10
Communication (1) Propriétés d une communication Emission d un message Finit toujours par arriver Temps non borné Possibilité de détecter sa non réception Retransmission(s) jusqu à ce qu il arrive Pas d altération (non modifié) Hypothèses sur le canal FIFO Ordre de réception = Ordre d émission Autres 11
Communication (2) Instants importants pour un message Délivrance Réception 12
Evénements (1) Exécution d un processus Suite d événements Locaux Calcul Communication Ordonnés localement Horloge locale Trace ou historique 13
Evénements (2) Synchronisation de processus 2 suites d événements distinctes Imposer un ordre sur l ensemble des événements Dire si un événement Eiprécède Ej ou inversement Allocation de ressources Utilisation d une ressource partagée 14
Evénements (3) Problématique de la datation Centralisé Aucun problème Même horloge Donc deux dates différentes Réparti Sémantique de l opérateur précède? Existence d horloges locales Solution Principe de causalité 15
Causalité (1) Principe Cause précède toujours l effet Intérêt Définir une relation de précédence particulière Précédence causale Application au réparti Processus Ordonnancement naturel Effet sur les événements postérieurs 16
Causalité (2) 2 Processus Emission précède toujours la réception Composition Transitivité de la relation Définition Par Lamport (78) Relation de précédence causale e e 17
Causalité (3) 18
Causalité (4) Propriétés Relation potentielle (par négation) Sémantique particulière Causalité n est pas violée e cause potentielle de e Il n est pas sûr que e soit la cause de e Problème de sémantique (interprétation) e ne peut en aucun cas être la cause de e Certitude Le futur n agit pas sur le passé 19
Causalité (5) Dépendance et indépendance Définition Passé ou historique d un événement hist(e ) = {e} e e {e } Exemples e e e peut influencer e (e e ) e ne peut pas influencer e 20
Causalité (6) (e e ) et (e e) e et e sont causalement indépendants e e 21
Problème de Datation (1) Problématique Pas de système central Absence de vue globale Etats partiels Comment obtenir une vue globale? Solution centralisée Définir un observateur extérieur au système Le mettre au courant de tous les événements 22
Problème de Datation (2) 23
Observations (1) Propriété d une observation Validité L observation doit respecter la causalité e e Obs(e) Obs(e ) 24
Observations (2) 25
Observations (3) Approche Temps de transmission borné (α) Existence d une horloge (H) Forme d un message émis Message estampillé Message plus une estampille (marque, signature) (m, H(m)) m : message H(m): date de transmission de m (estampille) 26
Observations (4) Instant de délivrance Instant t Délivrer tous les messages avec Estampille < t- α Délivrance selon l ordre des estampilles Condition de validité faible e e H(e) < H(e ) 27
Horloges logiques (1) Définies par Lamport But Dater des événements Assurer la condition de validité Déterminée par une consultation locale Principe Horloge logique (scalaire) sur chaque site Compteur : Hi 28
Horloges logiques (2) Evénement sur site i Daté par H(e) = H i 29
Horloges logiques (3) Algorithmique Init Hi = 0 pour tout i Evénement e local Hi = Hi + 1 (sauf pour la réception) Dater e avec Hi Emission d un message m Estampiller m ( m, Hi(m) ) 30
Horloges logiques (4) Réception d un message par Pj Hj = max ( Hj, Hi ) + 1 Dater la réception avec la nouvelle valeur de Hj 31
Horloges logiques (5) Ordre total (relation ) 2 événements a sur Si et b sur Sj a b ssi (H(a) < H(b)) ou (H(a) = H(b) et i<j) Exemple d observation e11 e21 e22 e31 e12 e23 e32 e13 e24 e25 e14 32
Horloges vectorielles (1) Problèmes des horloges logiques Ordre artificiel sur les événements Incohérence vis-à-vis de la relation FIFO Solution Les horloges vectorielles ou horloges de Mattern & Fidge 33
Horloges vectorielles (2) Principe Horloge vectorielle / Site Taille du vecteur d horloge Nombre de sites But Dater les événements Identique aux horloges logiques Plus riches en informations 34
Horloges vectorielles (3) Fonctionnement Associer un vecteur V i à chaque site P i Init V i = (0,, 0) Evénement local à P i V i [i] = V i [i]+1 Message m estampillé par V m V m = V i de l émetteur 35
Horloges vectorielles (4) Réception d un message (m, V m ) par Pi V i [i] = V i [i]+1 V i [j] = max(v i [j], V m [j]), pour j = 1..n, j i 36
37
Horloges matricielles (1) Synthèse Horloge logique ou scalaire Réduite à un nombre Ce que Pi connaît du système (Hi) Horloge vectorielle Vecteur d horloges scalaires Ce que Pi connaît de Pj (Hi[j]) 38
Horloges matricielles (2) Horloges matricielles Matrice d horloges Principe Ce que Pi connaît de ce que Pj connaît de Pk (Hi[j,k]) Horloge matricielle / Site nxn HMi 39
Horloges matricielles (3) Evénement ei de Pi Daté par la valeur courante de HMi Envoi de message Estampillé par HMi 40
Horloges matricielles (4) Sémantique Interprétation de HMi[j,k] Nombre de messages de Pj vers Pk dont Pi a connaissance Règles de gestion Evénement local à Pi HMi[i,i] = HMi[i,i] + 1 41
Horloges matricielles (5) Envoi de message vers Pj HMi[i,i] = HMi[i,i] + 1 HMi[i,j] = HMi[i,j] + 1 Réception de (m,em) par Pj Délivré que si tous les messages qui sont causalement antérieurs à lui ont été délivrés Em[j,i] = HMi[j,i] + 1 Pour tout k i,j Em[k,i] = HMi[k,i] 42
Horloges matricielles (6) Délivrance et MAJ horloges HMi[i,i] = HMi[i,i] + 1 HMi[j,i] = HMi[j,i] + 1 Pour tout k i,j et pour tout l i HMi[k,l] = max(hmi[k,l], Em[k,l]) 43
44
Asynchronisme (1) Problématique Comment délivrer un ensemble d éléments dans un certain ordre Exemple Solution File de messages Propriété d un message reçu Stabilité Pas de message d estampille inférieure 45
Asynchronisme (2) Règle de délivrance Ne délivrer un message que s il est stable 46
Diffusion causale (1) Principe Diffusion d un message à un ensemble de processus destinataires Diffusion générale (broadcast) Diffusion sélective (multicast) Intérêt Très utile en programmation répartie Diffusion d un état 47
Diffusion causale (2) Problèmes Spécification précise du mécanisme de diffusion Définition d invariants Différentes formes de diffusion Garantir les propriétés (totalement ou partiellement) lors de défaillances 48
Diffusion causale (3) Diffusion causale Principes Communication fiable Propriété à garantir 49
Diffusion fiable Principe Un message est délivré à tous ses destinataires ou à aucun Sémantique du tout ou rien 50
Diffusion atomique Principe Appelée aussi diffusion totalement ordonnée Deux propriétés Diffusion est fiable Messages sont délivrés dans le même ordre à tous leurs destinataires 51
Diffusion FIFO Principe Deux messages émis par le même émetteur sont délivrés à tout récepteur dans leur ordre d émission 52
Etat d un SR (1) Théorie Existence d un observateur Accès instantané au système Impossible à mettre en œuvre physiquement Problématique Qu est ce qu un état en réparti? Quelle sémantique lui associer? 53
Etat d un SR (2) Coupure (cut) Image «instantanée» du système Ensemble d événements Eléments à gauche de la coupure Définition et propriétés Coupure C C E E = {Ensemble de tous les événements} 54
Etat d un SR (3) e C et (e e) e C Ordre par inclusion C 1 < C 2 si C 1 C 2 55
Coupure Cohérence Respect de la causalité Un message ne peut pas venir du futur Coupure cohérente Fermée par la relation de dépendance causale Etat global cohérent Associé à une coupure cohérente 56
57
58
59
PARTIE 9 Applications Réparties 60
Applications Réparties (1) Schémas d organisation Client / Serveur Question/Réponse (Requête/Résultat) Exécution de type synchrone Modèle de base: RPC Remote Procedure Call Appel de Procédure à Distance Modèle étendu: RMI Remote Method Invocation Invocation de méthode à distance 61
Applications Réparties (2) Basées sur la notion d objet Architectures à objets répartis Flots de communication Discrets Messages Continus Multimédia (Vidéo) 62
Applications Réparties (3) Applications mobiles Code (données) qui se déplace Machine virtuelle Hétérogénéité entre machines Problèmes de sécurité Mémoire partagée Localisation Centralisée Distribuée 63
Applications Réparties (4) P2P Peer-to-Peer ou Pair-à-Pair Modèle C/S plus flexible Tous les composants jouent le même rôle 64
Source: M. Quinson (ESIAL) 65
Introduction Application répartie Ensemble d applicatifs Fonctionnement collaboratif Communication + Synchronisation Aspects d une application répartie Traitement Stockage Echange avec l extérieur 66
Applications (1) Composant de base Procédure Elément d exécution et d échange Encapsulation du fonctionnement interne Accessible par son interface Plate-forme Locale Distante 67
Applications (2) Utilisation Appel de procédure Local Distant Modèle RPC (Remote Procedure Call) Invocation de méthode Local Distant Modèle RMI (Remote Method Invocation) 68
Modèles d exécution Plusieurs modèles Client/Serveur Communication par messages Communication par événements Objet Composant Services Services Web (Web services) 69
Modèle Client/Serveur Fonctionnalités Client Envoi de requêtes Demande de service Exécution synchrone Serveur Fournit un ou plusieurs services Exemples Serveur de fichiers, de BD, de noms, 70
Plate-forme d exécution (1) Centralisée Client et Serveur sur la même machine Appel de procédure classique Invocation de méthode Référence à un objet local Partage de ressources Communication par ressources partagées Signaux, Tubes (pipes), 71
Plate-forme d exécution (2) Répartie Client et Serveur sur deux machines distantes Pas de partage Communication par messages Hétérogénéité ou homogénéité Modèles de fonctionnement RPC RMI 72
Conception (1) Découpage d une application Déterminer les procédures (objets) qui la composent Découpage fin (granularité fine) Augmentation du nombre d appels Peu de calcul interne Augmentation de la charge réseau Effet sur le temps de traitement 73
Conception (2) Augmenter le grain Trouver un équilibre entre calcul et communication Améliorer le ratio Coût/Communication Structuration applicative Découpage au sens entreprise L application correspond à une activité de l entreprise 74
Conception (3) 3 niveaux Présentation Interfaces essentiellement graphiques Logique applicative Traitements Applications métiers Données Gestion (stockage, accès, ) 75
Modèle à 1 niveau Source: S. Krakowiak 76
Modèle à 2 niveaux Source: S. Krakowiak 77
Modèle à 3 niveaux Source: S. Krakowiak 78
Modèle à 3 niveaux (Suite) Source: S. Krakowiak 79
Modèle à 4 niveaux Source: S. Krakowiak 80
Schémas de conception (1) Conception et programmation d applications réparties Architecture de l application Définir les éléments de l application Relations entre ces éléments Désignation et liaison Comment nommer et découvrir Machines, Services, 81
Schémas de conception (2) Sécurité Différents niveaux Applicatif, OS, Données, etc. Gestion des erreurs Gestion des pannes Réseau, Client, Serveur Qualité de services (QoS) Gestion des transactions Transfert, exécution, erreurs, etc. 82
Application répartie Conception et mise en œuvre 3 concepts fondamentaux Encapsulation Séparation entre l interface et la partie programmation interne Abstraction Etre le plus indépendant possible Décomposition en niveaux Schémas de conception Patterns 83
Schéma Pattern (1) Design Patterns (Patrons de conception) Définition de règles qui tiennent compte de deux aspects Classe de besoins précise Environnement de mise en œuvre Caractéristiques Basés sur le passé (expériences) Solutions réutilisables Schéma de conception réutilisable 84
Schéma Pattern (2) Principes de conception Ne font aucune référence à l implémentation Solution à un problème récurrent Ne décrit pas toute la solution Dépendance vis-à-vis de l environnement 85
Schéma Pattern (3) Qu est ce qui n est pas pattern Brique de base Dépend de l environnement Une règle Ne s applique pas mécaniquement Une méthode Ne dit pas comment prendre une décision Le pattern est la solution 86
Schéma Pattern (4) Exemples MVC Modèle (Données) Vue (Représentation des données) Contrôle (Traitement sur les données) Motifs Adapter, Factory 87
Schéma Proxy Présentation Appelé aussi schéma mandataire Eléments de l application Objets répartis Accessibles à distance par des clients Transparence totale pour le client Localisation Réseaux Protocoles, Routages, etc 88
89
Schéma Factory (1) Schéma Fabrique Application Ensemble d objets distants Problèmes Créer dynamiquement plusieurs instances d une même classe Pas d espace partagé Paramétrer les instances Instances évolutives Pas de codage en dur 90
Schéma Factory (2) Solution Définition d une interface et d une organisation pour créer des objets Distinguer entre création fictive et création réelle Création réelle Déléguée à une fabrique qui implémente les méthodes de création Objectif d une factory Renvoyer des objets concrets qui implémentent une interface commune 91
Schéma Factory (3) Exemple Application où les utilisateurs doivent pouvoir exporter les données de plusieurs types d'objets (Personne, Société, Voiture, ) dans un format spécifique Ces objets ne doivent pas savoir qu'ils peuvent être exportés Contiennent juste des variables d'instance, des getters et setters mais jamais de méthode export() ou équivalent public static ExportObject createexportable(object source) 92
Schémas Wrapper (1) Schéma Adapter Fournisseurs délivrent des services Services accessibles par les clients Services définis par des interfaces Possibilité de modifier l interface d un serveur Convertir l interface d une classe vers une autre «interface» que le client connaît 93
Schémas Wrapper (2) Motivations Création de classes pour être réutilisées Contexte d utilisation de l objet n est pas dans le même domaine d utilisation que l application Exemple : Utiliser un objet Cercle dans un contexte d objets carrés Utilisation du code applicatif mais pas son interface 94
Schémas Wrapper (3) Principe Utilisation de l héritage multiple Créer un objet tiers (troisième objet) qui réunira deux objets de domaines différents 95
Schémas Interceptor (1) Schéma Intercepteur Basé sur la notion de service Contextes C/S, P2P, Synchrone, Asynchrone, Problèmes liés au service Modification, Mobilité, 96
Schémas Interceptor (2) Objectif Transformer un service sans modifier les clients et les serveurs Solution Créer des objets d interposition Interceptent les appels (retours) et insèrent des traitements spécifiques 97
Applications Web (1) Définition Manière standard d'invoquer une application distante et récupérer les résultats de son exécution à travers le web Web Support d exécution des applications Support de communication Indépendant de tout langage et de plateforme 98
Applications Web (2) Motivations Intégration d applications Qu est ce que l on intègre? Service Spécialisation d une tâche Service courrier Problématiques Applications indépendantes Applications hétérogènes 99
Applications Web (3) Objectifs Interopérabilité entre applications Couplage faible Coopération à travers des interfaces Outil de base XML 100
Applications Web (4) Propriétés d un service Auto-descriptif Repérable ou identifiable à partir d une description Eléments d un service web WSDL Web Services Description Language Langage de description d une interface 101
Applications Web (5) Accès à un service Web SOAP Simple Object Access Protocol Protocole Internet pour la communication Annuaire des Services UDDI Universal Description, Discovery and Integration Protocole pour l enregistrement et la découverte de services 102
Mise en oeuvre Source: S. Krakowiak 103
WSDL 104
SOAP Présentation Mécanisme d échange d informations typées et structurées Description à l aide d XML 105
Source: S. Krakowiak 106
UDDI Présentation Annuaire de description des services Assure plusieurs fonctions Pages jaunes Fournisseurs de services (catégorie) Pages blanches Fournisseurs de services (nom) Pages vertes Définition des services fournis 107