1 / 41

Gestion du temps dans les SRs

Gestion du temps dans les SRs. Mehrez B oulares , N our B en Y ahia. ISI KEF – 2013/2014. INTRODUCTION.

sook
Download Presentation

Gestion du temps dans les SRs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gestion du temps dans les SRs MehrezBoulares, Nour Ben Yahia ISI KEF – 2013/2014

  2. INTRODUCTION • Les systèmes répartis sont présents dans toutes les applications et sont, par nature, très complexes. Le problème principal est qu’il n’y a plus d’état global connu de toutes les parties mais seulement des états locaux permettant de faire émerger un état global. • La propriété d’émergence est souvent mentionnée dans les systèmes à agents ou systèmes multi agents : l’activité de chacun concourt à la réalisation d’un objectif global. • Très naturellement, le contrôle de ces systèmes répartis n’est pas simple mais il est important de pouvoir s’assurer de la réalisation d’un objectif donné par un ensemble d’activités élémentaires. ISI Kef

  3. INTRODUCTION • Un système réparti est constitué de N composants (processus ou sites) communiquant par messages (et uniquement de cette manière). • Chacun de ces composants agit comme un automate : il réalise des opérations qui modifient son état. • Les opérations réalisées par un des composants sont naturellement ordonnées par l'ordre dans lequel elles sont réalisées : • s’il s'agit d'un processus abritant plusieurs activités (threads), • sur un système monoprocesseur, c'est l'ordre de l'exécution des instructions des instructions sur ce processeur qui ordonne les événements. • La définition de l'ordre des événements sur un système multiprocesseurs (fortement et a fortiori faiblement couplés) est plus problématique du fait de la difficulté de maintenir une notion de temps absolu cohérente. ISI Kef

  4. INTRODUCTION Dans un contexte de répartition: • L’observation des programmes en exécution présente des difficultés qui rendent le problème non trivial. • Un programme réparti est constitué d’un ensemble de processus s’exécutant en parallèle et communiquant seulement par envoi de messages sur des canaux les interconnectant. • Il n’y a pas d’horloge commune aux différents processus, et de plus, les temps de transfert des messages ne sont pas bornés (dans un contexte de communication fiable, ils sont toutefois finis). • Dans ces conditions, il est impossible d’effectuer une observation “simultanée” de l’état des différents processus et canaux. • La réalisation d’une observation cohérente qui reflète un état global constitué des états locaux des différentes parties du système, pris à des instants physiques différents mais de manière à rendre une information utile sur l’état du système dans son intégralité, constitue donc un problème désormais classique, connu sous le nom de détection d’un état global réparti cohérent. ISI Kef

  5. PROBLEMATIQUE • Obtenir une vision instantanée d'un système réparti, consistant en la collection des états des différents sites le composant (typiquement une image mémoire de chacun des sites) est difficile à obtenir sans figer chacun des systèmes. • L'absence de mémoire commune et le caractère aléatoire des délais d'acheminement des messages échangés entre les sites rendent impossible le calcul d'un état global du système dans un système réparti. • Typiquement, l'image qu'un site possédera de l'état des autres sites ne pourra lui être communiquée qu'au travers de messages et ne pourra de ce fait correspondre qu'à un état du passé de ces sites : la chronologie des différentes images ainsi collectées n'est pas connue a priori. ISI Kef

  6. PROBLEMATIQUE • L'absence d'un état global accessible directement constitue incontestablement une caractéristique de la répartition et est source de difficultés dans le développement d'applications relatives à : • l'interblocage ou verrou mortel (deadlock): situation dans laquelle un ensemble de processus est en situation de blocage du fait de l'existence d'un cycle dans le graphe d'allocations et de demandes des ressources à ces processus ; • le ramasse-miettes (garbagecollecting), opération consistant en le épération des ressources allouées à un objet inutilisé ; • la mise au point (debugging): opération incluant par exemple la consultation et/ou la modification des valeurs de variables dans différents composants à un instant donné. ISI Kef

  7. PROBLEMATIQUE • Les Systèmes répartis ont une évolution asynchrone • pas de mémoire commune (communication par messages) • pas d’horloge commune • Les horloges locales ne sont pas synchrones et dérivent • L’état d’un site distant ne peut être connu que par des informations véhiculées par les messages. • De plus, les communications introduisent des délais • L'ordre des messages n'est pas forcément préservé Conséquences : • Perception différente des mêmes événements depuis des sites distincts • Chaque site a sa propre horloge, la notion d'état global n'existe pas • On ne peut pas mettre en œuvre des algorithmes répartis basés sur le temps. ISI Kef

  8. CONSTRUCTION D’UN ÉTAT GLOBAL • L'exécution d'un algorithme réparti est une succession d'événements, chacun d'eux se produisant sur un site donné (Un événement : émission/ réception de message, calcul local au site) • Une horloge unique permet de donner une date à chacun des événements et de les ordonner entre eux. • Sur chaque site, il est possible de définir un état local et de définir un ordre entre les événements • Deux processus de deux sites différents peuvent avoir des informations différentes sur l’état du système et sur l’ordre des événements qui s’y produisent. • La solution de synchronisation des sites entre eux est donnée par la construction d'un état global • Utilisation d'horloges : logiques, vectorielles, matricielles • Utilisation d’états locaux des sites et de messages en transit entre eux ISI Kef

  9. LE MODÈLE DE CALCUL • Un système réparti est constitué d’un ensemble fini de processus qui ne communiquent que par envoi de messages. • La structure d’un tel système peut être modélisée par un graphe orienté: les sommets de ce graphe sont les processus et les arcs représentent les canaux de communication unidirectionnels (canaux virtuels) reliant des processus entre eux. • A priori, aucune hypothèse particulière n’est faite quant à la topologie du graphe. • Les processus seront désignés par P1, P2,..., Pnet le canal allant de Pi vers Pj, s’il existe, sera désigné par Ci j. ISI Kef

  10. LE MODÈLE DE CALCUL • Les processus ne partagent ni mémoire commune ni horloge globale, et aucune hypothèse n’est faite quant à leur vitesse relative. L’envoi et la réception de messages sont effectués de manière asynchrone, mais aucun délai maximum de transfert des messages n’est supposé connu. • La seule hypothèse générale sur les communications concerne leur fiabilité: les messages ne sont ni perdus (le délai de transfert est fini: tout message émis est reçu) ni altérés ni dupliqués (tout message reçu a été émis). De telles hypothèses caractérisent ce qu’il est convenu d’appeler un système réparti asynchrone fiable ISI Kef

  11. ETAT GLOBAL • Chaque processus et chaque canal possède à tout moment un état local. L’état local « eli » d’un processus « Pi » résulte de son état initial et de la séquence d’événements dont ce processus a été le siège. L’état ECijd’un canal Cijest l’ensemble des messages en transit sur ce canal, c’est à dire qui ont été émis par le processus Pi et n’ont pas encore été reçus par le processus Pj. • L’évolution du système est régie par un ensemble d’événements. Chaque événement met en jeu un processus et éventuellement un canal. Il y a trois sortes d’événements: • les événements internes à un processus, qui ne modifient que l’état local du processus, • les émissions de messages, qui modifient l’état local du processus émetteur et l’état du canal sortant sur lequel est émis le message • et les réceptions de messages, qui modifient l’état local du processus récepteur et l’état du canal entrant par lequel le message a été reçu. ISI Kef

  12. ETAT GLOBAL • Schématiquement on a, à ceniveau de description (m désigne un message): • événement interne sur Pi: provoque la transition de elià el'i, états avant et après l’événement • émission de m par Pi sur Ci j(cet événement est noté émissioni(m)): provoque la transition de elià el'iet l’affectation ECij:= ECijU {m} • réception de m par Pisur Cj i (cet événement est noté réceptioni(m)): provoque la transition de elià el'iet l’affectation ECji:= ECji\ {m} . ISI Kef

  13. ETAT GLOBAL • Chacun de cesévénementsestsupposéatomique. • On ditqu’unévénementeestcaptédansl’état local elid’un processusPi • sieappartient à la séquenced’événementsayant conduit Pidansl’étateli. • Il est important de remarquerquel’état local d’un processusn’estimmédiatement observable que par un observateur local à ceprocessus (c’est à dire ayantaccès en lecture à la mémoire locale de ceprocessus), tandisquel’état local d’un canal C i jn’estimmédiatement observable ni par son originePini par son extrémitéPj(Pi- resp. Pj- n’a pas connaissanceimmédiate des événements de réception -resp. d’émission-); c’estnotammentce fait qui rend difficile le problème de l’observationcohérentedans un systèmeréparti. • L’état global Sd’un systèmerépartiestconstitué de l’ensemble des étatslocaux des processus et des canaux qui le constituent ISI Kef

  14. ETAT GLOBAL Un état global cohérent correspond à un état global danslequel le systèmepeut se trouver. Formellement, celasignifie: i) ∀i: eliest un état local du processusPi. ii) Les conditions C1 et C2 qui suivantsont vérifiées: C1: sil’événementémissioni(m)estcaptédanseli, alorsl’événementrécep- tionj(m) estsoitcaptédanselj, soit le message m appartient à ecij. C2: sil’événementémissioni(m) n’est pas captédanseli, l’événementrécep- tionj(m) n’est pas non plus captédanselj. ISI Kef

  15. ETAT GLOBAL • Considéronsl’exécutionreprésentée par la figure 2, oùtroisprocessusPi, Pjet Pkcaptentrespectivementleursétatslocauxeli, eljet elk (le graphe de communication estcelui de la figure 1). ISI Kef

  16. ETAT GLOBAL • L’ensemble { eli, elj, elk} ne forme pas un état global. • Si l’onconsidère la paire (Pk, Pj), l’émission du message m3 estenregistréedansl’état local elk du processusPkalorsquesaréception ne l’est pas dansl’état local eljdu processusPj. • La condition C1 estmise en défaut, puisquel’état du canal ECkjn’est pas considéré (un éventuelredémarrage de Pjet de Pk, suite à une reprise après défaillance, à partir de cetétat global entraînerait la perte du message m3). • D’autrepart, même en considérantl’état des canauxdansl’état global, la cohérencen’est pas assurée car la réception du message m4 estenregistréedanseljsans que son émission le soitdansELk, • cequi met en défaut la condition C2 (les deuxétatslocauxeljet elk et l’état du canal ECjkne sont pas mutuellementcohérents). ISI Kef

  17. NOTION DE PRÉCÉDENCE CAUSALE • Pour définir un état global il faut tout d’abord pouvoir ordonner les événements entre eux, afin que : • Si un des événements contient l’émission d’un message et que l’autre contient la réception du même message, alors le premier a eu lieu avant le second. • Si un site émet une demande d’allocation d’une ressource, il est considéré avant un autre site qui aurait émis sa requête après le premier. • Cette relation d’ordre partiel sur les événements est appelée relation de causalité. • On définit la précédence comme suit : • Un événement e précède un événement f si et seulement si : • Ou bien e et f se déroulent sur le même site dans cet ordre • Ou bien e contient l’émission d’un message m et f contient la réception du même message m. ISI Kef

  18. NOTION DE PRÉCÉDENCE CAUSALE • Un événement E1 sur un site 1 précède un autre événement E2 sur un site 2 si E1 a été généré avant E2 : • Il y’a une précédence causale entre E1 et E2. • Il existe une chaine d’événement qui démarre à E1 et finit par E2 et qui consiste par un enchainement émission, exécution et réception. • La précédence causale est concrétisée par le mécanisme d’horloge logique, une notion logique permettant de comparer logiquement les événements de point de vu leur ordre d’exécution quelque soit le site. • Afin de dater les événements des horloges logiques de différents types peuvent être utilisées : Scalaire, Vectorielle, Matricielle. ISI Kef

  19. NOTION DE PRÉCÉDENCE CAUSALE ISI Kef

  20. NOTION DE PRÉCÉDENCE CAUSALE • Cette relation définit un ordre partiel des événements. Des événements e et e' non comparables sont dits concurrents, ce qu'on note e||e'. • A un événement e on peut alors associer trois ensembles d'événements : • Passé(e) : ensemble des événements antérieurs à e dans l'ordre causal (e appartient à cet ensemble) ; • Futur(e): ensemble des événements postérieurs à e dans l'ordre causal (e appartient à cet ensemble) ; • Concurrent(e) : ensemble des événements concurrents avec e. ISI Kef

  21. NOTION DE PRÉCÉDENCE CAUSALE • La précédence causale est concrétisée par le mécanisme des horloges logiques, une notion de temps logique permettant de comparer logiquement des événements du point de vue de leur ordre d'exécution quel que soit le site. • Afin de dater les événements, des horloges logiques de différents types peuvent être définies afin de rendre compte de la relation de causalité entre les événements. Les valeurs des horloges associées à des événements (leurs estampilles logiques) comparables doivent être elles-mêmes comparables et refléter l'ordre des événements ISI Kef

  22. HORLOGE LOGIQUE • Lamport a proposé de définir pour ce type de systèmes une notion de temps logique permettant de comparer logiquement des événements du point de vue de leur ordre d'exécution : d'une part, sur un site, les événements locaux peuvent être ordonnés en se basant sur l'ordre de leur exécution (ou le temps absolu s'il est défini) et d'autre part l'émission d'un message sur le site émetteur précède toujours sa réception sur le site récepteur. Cela correspond à la notion de précédence causale. ISI Kef

  23. HORLOGE LOGIQUE • Selon Leslie Lamport l'horloge logique permet de comparer logiquement des événements (requêtes, messages…) du point de vue de leur ordre d'exécution (Horloges scalaires) • Chaque site gère une horloge de type compteur dont la valeur est un entier (initialisé à 0 au lancement du système). • La valeur de l'horloge logique d'un site est incrémentée chaque fois qu'un événement local s'y produit : opération locale, ou envoi/réception d'un message. • Dans le cas d'un envoi, la valeur courante (après incrémentation) de l'horloge de l'émetteur est embarquée avec le message et sert à l'estampiller (La réception d'un message permet de synchroniser l'horloge du récepteur avec celle de l'émetteur du message qui est transportée par le message. Le principe est simple : il consiste à attribuer à l'horloge du récepteur une valeur supérieure à la fois à la valeur courante de l'horloge du site et à celle de l'estampille du message reçu.) • La réception d'un message permet de synchroniser l'horloge du récepteur avec celle de l'émetteur du message qui est transportée par le message. ISI Kef

  24. HORLOGE LOGIQUE SCALAIRE • Principe : attribuer à l'horloge du récepteur une valeur supérieure à la fois à a valeur courante de l'horloge du site et à celle de l'estampille du message reçu. • Conséquence : Garantit que la réception sera postérieure à l'émission. ISI Kef

  25. HORLOGE LOGIQUE SCALAIRE ISI Kef

  26. HORLOGE LOGIQUE SCALAIRE ISI Kef

  27. HORLOGE LOGIQUE SCALAIRE • Cette technique permet donc d'associer à chaque événement une date (estampille logique) correspondant à la valeur de l'horloge de son site modifiée selon les règles que nous venons de définir. On peut observer que : • l'ordre des événements qui est ainsi défini n'est pas un ordre strict : plusieurs événements peuvent porter la même valeur. C'est le cas (parmi d'autres) sur notre exemple des événements e, o et x appartenant respectivement à P, Q et R qui ont chacun 6 comme date. Il est facile de rendre cet ordre strict en modifiant légèrement le système de datation : la date d'un événement sur un site est obtenue en adjoignant à la valeur de l'horloge scalaire de ce site l'identification du site (par exemple un entier attribué artificiellement ou une adresse IP ou physique). ISI Kef

  28. HORLOGE LOGIQUE SCALAIRE • La règle de comparaison des dates est alors : ISI Kef

  29. HORLOGE LOGIQUE SCALAIRE • De nombreux algorithmes répartis : • Algorithmes utilisant une “file d’attente virtuelle” répartie (Exclusion mutuelle répartie, mise à jour de copies multiples, diffusion cohérente (ordre de réception uniforme)) • Détermination de l’accès “le plus récent” (gestion cohérente de caches multiples, mémoire virtuelle répartie) • Synchronisation des horloges physiques (borne supérieure sur la dérive entre sites) • Algorithmes de détection de terminaison, d'élection, de diffusion de messages, ISI Kef

  30. HORLOGE LOGIQUE VECTORIELLE • Nous venons de voir que le système de datation par estampilles scalaires d'une part introduisait un ordre artificiel sur des événements concurrents et d'autre part ne permettait pas de corriger les défaillances vis-à-vis de la relation FIFO des canaux de communication. Le mécanisme de datation par estampilles vectorielles (et les horloges vectorielles maintenues par les différents composants d'un système) permet de pallier ces deux inconvénients.Chaque site gère une horloge vectorielle constituée de n entiers (n est le nombre de composants du système). Une telle horloge permet de dater les événements d'un site et est mise à jour lors de l'occurrence des événements. Comme pour les horloges scalaires, les messages envoyés par un site sont estampillés en utilisant la valeur courante de l'horloge vectorielle du site émetteur et la réception d'un message permet au site récepteur de synchroniser son horloge vectorielle avec celle du site émetteur du message. • De manière plus précise, les règles suivantes sont appliquées pour la gestion des horloges vectorielles: ISI Kef

  31. HORLOGE LOGIQUE VECTORIELLE ISI Kef

  32. HORLOGE LOGIQUE VECTORIELLE ISI Kef

  33. HORLOGE LOGIQUE VECTORIELLE • La propriété fondamentale que possèdent les estampilles vectorielles déduites des horloges vectorielles et de leur actualisation par les règles énoncées est que • Par exemple l'estampille vectorielle de l'événement p est [4, 7, 5]. Cela correspond au fait que Passé(p) contient • 4 événements sur P (a, b, c, d); • 7 événements sur Q (j, k, l, m, n, o, p); • 5 événements sur R (u, v, w, x, z). ISI Kef

  34. HORLOGE LOGIQUE VECTORIELLE •  La relation d'ordre suivante peut par ailleurs être définie sur les estampilles vectorielles: • Par exemple [4,7,5] est plus petite que [6,7,8], plus grande que [4,6,4] et incomparable avec [6,5,7] ISI Kef

  35. HORLOGE LOGIQUE VECTORIELLE • Muni de cette relation d'ordre, le système de datation par estampilles vectorielles a la remarquable propriété de refléter exactement la relation de précédence causale entre événements : ISI Kef

  36. HORLOGE LOGIQUE VECTORIELLE • On peut vérifier sur notre exemple que : • les estampilles vectorielles des événements précédant causalement p sont inférieures (au sens qui a été défini) à l'estampille vectorielle de p ([4,7,5]). Par exemple l'estampille vectorielle de l'événement d antérieur à p est ([4,1,0]) qui est inférieure à ([4,7,5]); • les estampilles vectorielles des événements suivant causalement p sont supérieures à l'estampille vectorielle de p. Par exemple l'estampille vectorielle de l'événement C postérieur à p est ([8,9,9]) qui est supérieure à ([4,7,5]); • les estampilles vectorielles des événements concurrents de p sont incomparables avec l'estampille vectorielle de p; Par exemple l'estampille vectorielle de l'événement e concurrent avec l'événement p est ([5,3,3]) qui est incomparable avec ([4,7,5]). ISI Kef

  37. Correction TD ISI Kef

  38. Correction TD • Considérons l'événement p. Il appartient à son propre passé et est précédé directement par o et y. - On a Passé(p) = {p} + Passé(o) + Passé(y) Le calcul de Passé(p) suppose donc le calcul de celui de o et y. - On a Passé(o) = {o} + Passé(n) + Passé(d) En pousuivant le calcul: - Passé(n) = {n} + Passé(m) - Passé(m) = {m} + Passé(l) + Passé(a) - Passé(l) = {l} + Passé(k) - Passé(k) = {k} + Passé(j) + Passé(u) - Passé(j) = {j} - Passé(u) = {u} - Passé(a) = {a} - Passé(d) = {d} + Passé(c) - Passé(c) = {c} + Passé(b) - Passé(b) = {b} + Passé(a) + Passé(j) - Passé(y) = {y} + Passé(x) - Passé(x) = {x} + Passé(w) + Passé(n) - Passé(w) = {w} + Passé(v) - Passé(v) = {v} + Passé(u) + Passé(l) Par conséquent Passé(p) = {a, b, c, d, j, k, l, m, n, o, p, u, v, w, x, y} ISI Kef

  39. Correction TD • Par un calcul analogue, on obtient: Futur(p) = {g, h, i, p, q, r, s, t, C, D} • Finalement les événements n'appartenant ni à Passé(p), ni à Futur(p) sont concurrents avec p. • On a donc Concurrent(p) = {e, f, z, A, B}  ISI Kef

  40. Correction TD ISI Kef

  41. Correction TD ISI Kef

More Related