Mehrez Boulares, Nour Ben Yahia - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Mehrez Boulares, Nour Ben Yahia

Description:

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 ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 42
Provided by: isikefRnu
Category:
Tags: ben | boulares | futur | mehrez | nour | simple | yahia

less

Transcript and Presenter's Notes

Title: Mehrez Boulares, Nour Ben Yahia


1
Gestion du temps dans les SRs
  • Mehrez Boulares, 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 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.

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.

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.

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.

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é.

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.

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

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 Ci j.

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

11
ETAT GLOBAL
  • Chaque processus et chaque canal possède à tout
    moment un état local. Létat local  eli  dun
    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 ECij dun canal Cij est
    lensemble des messages en transit sur ce canal,
    cest à dire qui ont été émis par le processus Pi
    et nont 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.

12
ETAT GLOBAL
  • Schématiquement on a, à ce niveau 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'i et laffectation ECi j
    ECi j U m
  • réception de m par Pi sur Cj i (cet
    événement est noté réceptioni(m)) provoque la
    transition de eli à el'i et laffectation ECj i
    ECj i \ m .

13
ETAT GLOBAL
  • Chacun de ces événements est supposé atomique.
  • On dit quun événement e est capté dans létat
    local eli dun processus Pi
  • si e appartient à la séquence dévénements ayant
    conduit Pi dans létat eli.
  • 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 Pi ni par son extrémité Pj (Pi -
    resp. Pj- 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

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 émissioni(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.

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).

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 ECkj 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).

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.

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.

19
NOTION DE PRÉCÉDENCE CAUSALE
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
    ee'.
  • 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.

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

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.

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.

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.

25
HORLOGE LOGIQUE SCALAIRE
26
HORLOGE LOGIQUE SCALAIRE
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).

28
HORLOGE LOGIQUE SCALAIRE
La règle de comparaison des dates est alors
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,

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

31
HORLOGE LOGIQUE VECTORIELLE
32
HORLOGE LOGIQUE VECTORIELLE
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).

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

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

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érie
    ur à 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 concurre
    nt avec l'événement p est (5,3,3) qui est
    incomparable avec (4,7,5).

37
Correction TD
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

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 

40
Correction TD
41
Correction TD
Write a Comment
User Comments (0)
About PowerShow.com