La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Mehrez Boulares, Nour Ben Yahia ISI KEF – 2013/2014 Gestion du temps dans les SRs."— Transcription de la présentation:

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

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 quil ny 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 : lactivité de chacun concourt à la réalisation dun objectif global. Très naturellement, le contrôle de ces systèmes répartis nest pas simple mais il est important de pouvoir sassurer de la réalisation dun objectif donné par un ensemble dactivités élémentaires. ISI Kef 2

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 : –sil 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 3

4 INTRODUCTION Dans un contexte de répartition: Lobservation des programmes en exécution présente des difficultés qui rendent le problème non trivial. Un programme réparti est constitué dun ensemble de processus sexécutant en parallèle et communiquant seulement par envoi de messages sur des canaux les interconnectant. Il ny a pas dhorloge 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 deffectuer une observation simultanée de létat des différents processus et canaux. La réalisation dune 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 dun état global réparti cohérent. ISI Kef 4

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 5

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 (garbage collecting), 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 6

7 PROBLEMATIQUE Les Systèmes répartis ont une évolution asynchrone –pas de mémoire commune (communication par messages) –pas dhorloge commune Les horloges locales ne sont pas synchrones et dérivent Létat dun 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 7

8 CONSTRUCTION DUN É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 lordre des événements qui sy 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 8

9 LE MODÈLE DE CALCUL Un système réparti est constitué dun ensemble fini de processus qui ne communiquent que par envoi de messages. La structure dun 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 nest faite quant à la topologie du graphe. Les processus seront désignés par P1, P2,..., Pn et le canal allant de Pi vers Pj, sil existe, sera désigné par C i j. ISI Kef 9

10 LE MODÈLE DE CALCUL Les processus ne partagent ni mémoire commune ni horloge globale, et aucune hypothèse nest faite quant à leur vitesse relative. Lenvoi et la réception de messages sont effectués de manière asynchrone, mais aucun délai maximum de transfert des messages nest 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 quil est convenu dappeler un système réparti asynchrone fiable ISI Kef 10

11 ETAT GLOBAL Chaque processus et chaque canal possède à tout moment un état local. Létat local « el i » dun processus « P i » résulte de son état initial et de la séquence dévénements dont ce processus a été le siège. Létat EC ij dun canal C ij est lensemble des messages en transit sur ce canal, cest à dire qui ont été émis par le processus P i et nont pas encore été reçus par le processus P j. 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 11

12 ETAT GLOBAL Schématiquement on a, à ce niveau de description (m désigne un message): –événement interne sur P i : provoque la transition de el i à el' i, états avant et après lévénement –émission de m par P i sur C i j (cet événement est noté émission i (m)): provoque la transition de el i à el' i et laffectation EC i j := EC i j U {m} –réception de m par P i sur C j i (cet événement est noté réceptioni(m)): provoque la transition de el i à el' i et laffectation EC j i := EC j i \ {m}. ISI Kef 12

13 ETAT GLOBAL Chacun de ces événements est supposé atomique. On dit quun événement e est capté dans létat local el i dun processus P i –si e appartient à la séquence dévénements ayant conduit P i dans létat el i. Il est important de remarquer que létat local dun processus nest immédiatement observable que par un observateur local à ce processus (cest à dire ayant accès en lecture à la mémoire locale de ce processus), tandis que létat local dun canal C i j nest immédiatement observable ni par son origine P i ni par son extrémité P j (P i - resp. P j - na pas connaissance immédiate des événements de réception -resp. démission-); cest notamment ce fait qui rend difficile le problème de lobservation cohérente dans un système réparti. Létat global S dun système réparti est constitué de lensemble des états locaux des processus et des canaux qui le constituent ISI Kef 13

14 ETAT GLOBAL Un état global cohérent correspond à un état global dans lequel le système peut se trouver. Formellement, cela signifie: i) i : eli est un état local du processus Pi. ii) Les conditions C1 et C2 qui suivant sont vérifiées: C1: si lévénement émission i (m) est capté dans eli, alors lévénement récep- tionj(m) est soit capté dans elj, soit le message m appartient à ecij. C2: si lévénement émissioni(m) nest pas capté dans eli, lévénement récep- tionj(m) nest pas non plus capté dans elj. ISI Kef 14

15 ETAT GLOBAL Considérons lexécution représentée par la figure 2, où trois processus Pi, Pj et Pk captent respectivement leurs états locaux eli, elj et elk (le graphe de communication est celui de la figure 1). ISI Kef 15

16 ETAT GLOBAL Lensemble { eli, elj, elk} ne forme pas un état global. Si lon considère la paire (Pk, Pj), lémission du message m3 est enregistrée dans létat local elk du processus Pk alors que sa réception ne lest pas dans létat local elj du processus Pj. –La condition C1 est mise en défaut, puisque létat du canal EC kj nest pas considéré (un éventuel redémarrage de Pj et de Pk, suite à une reprise après défaillance, à partir de cet état global entraînerait la perte du message m3). Dautre part, même en considérant létat des canaux dans létat global, la cohérence nest pas assurée car la réception du message m4 est enregistrée dans elj sans que son émission le soit dans ELk, –ce qui met en défaut la condition C2 (les deux états locaux elj et elk et létat du canal ECjk ne sont pas mutuellement cohérents). ISI Kef 16

17 NOTION DE PRÉCÉDENCE CAUSALE Pour définir un état global il faut tout dabord pouvoir ordonner les événements entre eux, afin que : –Si un des événements contient lémission dun message et que lautre contient la réception du même message, alors le premier a eu lieu avant le second. –Si un site émet une demande dallocation dune ressource, il est considéré avant un autre site qui aurait émis sa requête après le premier. Cette relation dordre 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 dun message m et f contient la réception du même message m. ISI Kef 17

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 ya 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 dhorloge logique, une notion logique permettant de comparer logiquement les événements de point de vu leur ordre dexé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 18

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

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 20

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 21

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 22

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 23

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 24

25 HORLOGE LOGIQUE SCALAIRE ISI Kef 25

26 HORLOGE LOGIQUE SCALAIRE ISI Kef 26

27 HORLOGE LOGIQUE SCALAIRE ISI Kef 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). 27

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

29 HORLOGE LOGIQUE SCALAIRE De nombreux algorithmes répartis : –Algorithmes utilisant une file dattente virtuelle répartie (Exclusion mutuelle répartie, mise à jour de copies multiples, diffusion cohérente (ordre de réception uniforme)) –Détermination de laccè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 29

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 30

31 HORLOGE LOGIQUE VECTORIELLE ISI Kef 31

32 HORLOGE LOGIQUE VECTORIELLE ISI Kef 32

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) contientPassé(p) –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 33

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 34

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 35

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 36

37 Correction TD ISI Kef 37

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 38

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 39

40 Correction TD ISI Kef 40

41 Correction TD ISI Kef 41


Télécharger ppt "Mehrez Boulares, Nour Ben Yahia ISI KEF – 2013/2014 Gestion du temps dans les SRs."

Présentations similaires


Annonces Google