SlideShare une entreprise Scribd logo
1  sur  93
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 1
Algorithmique distribuée
ENSSAT
Elodie Descharmes
Filière IMR 2
2010-2011
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 2
Plan du cours
0 Introduction
Définition d’un système réparti, problématique globale
1 Exemples informels introductifs
Introduction aux principales notions utiles en algorithmique distribuée
1 : notion processus
2 : notion de séquences d’évènements, expression de synchronisation
3 : exclusion mutuelle
2 CSP
Tutoriel
Exemples simples
3 1 producteur / 1 consommateur
Présentation de l’’exemple et mise en œuvre distribuée
Notion de prédicat régulier
Algorithme
4 N producteurs / 1 consommateur
Présentation de l’exemple et mise en œuvre distribuée
Algorithme
Contrôle continu
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 3
Introduction
Généralités
• Informatique classique
– Centralisation
• Des moyens de calcul
• Des moyens de stockage
• Du contrôle
• Des données
• Informatique parallèle
– Motivations
• Calcul intensif, applications scientifiques
• Gestion de grandes masses de données
– Solution
• Augmenter la puissance de calcul
• Augmenter le nombre de processeurs
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 4
Introduction
Généralités
• Informatique répartie
• Développement des réseaux
• Intégration d’applications séparées
• Pénétration de l’informatique dans tous les domaines
• Informatique mobile
• Utilisateurs nomades
• Moyens de traitement légers
• Informatique intégrées aux objets
• Informatique pervasive
• Accès à l’information et aux services à tout moment, de n’importe où, avec n’importe
quel terminal
 Solution : systèmes répartis
– Répartition
• Des moyens de calcul
• Des moyens de stockage
• Des données
• Du contrôle
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 5
• Définition : système (ou architecture) distribué (ou réparti)
– Ensemble de processus
– Coopérant à un même service
– S’exécutant en parallèle
– Sur différents sites
En anglais = « distributed architecture »
Hypothèse de simplification : les processus sont placés sur des sites distincts, un
processus par site
• Définition : algorithme de contrôle distribué
– Contrôle des mécanisme de communication et de synchronisation entre
processus
– Pas de mémoire commune
• Définition : algorithme de contrôle centralisé
– Contrôle des mécanisme de communication et de synchronisation entre processus
– Mémoire(s) commune(s)
Introduction
Premières définitions
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 6
• Plusieurs processus concurrents sur des sites différents
• Pas de mémoire commune, pas d’horloge partagée
• Les délais de transmission de messages sont non négligeables
• Chaque processus ne connaît à un instant donné que son propre état. Il n’y
a pas de vision globale de l’état du système.
• La réception d’information venant d’un autre site l’informe sur son état
antérieur, mais pas sur l’état actuel
 concepts, mécanismes, techniques et outils adaptés au contexte des
systèmes distribués
• Exemple de problème à éviter : l’interblocage
Se produit lorsque deux processus concurrents s'attendent mutuellement.
Les processus bloqués dans cet état le sont définitivement.
Introduction
Enoncé du problème
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 7
Introduction
Pourquoi des systèmes distribués
• Avantages des systèmes distribués
– Coût : plusieurs processeurs à bas prix
– Puissance de calcul et de stockage : aucune machine centralisée ne peut
rivaliser
– Performance (accélération) : via du calcul parallèle
– Adaptation : transparence réseau, interopérabilité
– Fiabilité : résistance globale du système aux pannes locales
– Extensibilité : croissance progressive selon le besoin
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 8
Chapitre 1
Exemples informels introductifs
Exemple 1 : notion de processus
Exemple 2 : coopération entre processus
Exemple 3 : compétition entre processus
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 9
Exemple 1 – processus
Présentation de l’exemple, expression distribuée
• Exemple séquentiel
• Intuitivement, on comprend les tâches de cette séquence peuvent être
séparées en trois activités indépendantes :
• Ses trois activités peuvent se dérouler sur des processus différents
• Formalisme CSP
i := 1 j := j+1 k := l*2 ;
l := l+1
i := 1 ;
j := j+1 ;
k := l*2 ;
l := l+1
[ i := 1 || j := j+1 || k := l*2 ; l := l+1 ]
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 10
Exemple 1 – processus
Notion de processus
• Processus ≠ programme
– Programme = description d’un calcul
– Processus = déroulement d’un calcul
• Un programme peut engendrer plusieurs processus
• Pour s’exécuter, un processus à besoin de ressource(s)
– Processeur
– Accès à une variable
– Signal…
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 11
Exemple 2 – coopération
Présentation de l’exemple
• Exemple séquentiel : la recette de la mousse au chocolat
1. Chauffer le chocolat
2. Casser les œufs
3. Battre les blancs
4. Mélanger les jaunes et le sucre
5. Mélanger le chocolat et le résultat de (4)
6. Mélanger les blancs et le résultat de (5)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 12
Exemple 2 – coopération
Expression distribuée
• Expression distribuée
– Il peut être intéressant de découper ce programme en plusieurs processus
(efficacité, clarté)
– Choix arbitraire : décomposition en fonction des ressources nécessaires à
l’exécution du programme
• Four
• Batteur
• Mixeur
 3 processus F, M, B
Processus F Processus M Processus B
chauffer_chocolat casser_œufs ;
battre_blancs
a = mélanger_jaunes_sucre ;
b = mélanger_chocolat_et a ;
Mélanger_blancs_et b
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 13
Exemple 2 – coopération
Séquences d’évènements
• Ces processus sont en relation de collaboration pour l’élaboration de la
mousse au chocolat
• On peut définir pour chaque étape un évènement de début et un évènement
de fin (durée nulle par définition)
• On a les séquences d’évènements suivantes :
– M2 ≤ B1
– M3 ≤ B3
– F2 ≤ B2
– Si i < j, Mi ≤ Mj, Bi ≤ Bi, Fi ≤ Fj
Processus F Processus M Processus B
(F1) chauffer_chocolat (F2) (M1) casser_œufs (M2) ;
battre_blancs (M3)
(B1) a = mélanger_jaunes_sucre (B2) ;
b = mélanger_chocolat_ a (B3) ;
Mélanger_blancs_ b (b4)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 14
Exemple 2 – coopération
Expression de synchronisation
• Synchroniser le système = cadencer l’occurrence des évènements
• Mise en œuvre par un contrôleur qui
– Perçoit les occurrence des évènements
– Peut ralentir ou arrêter un processus
• Définition : expression de synchronisation
– L’ensemble des séquences d’évènements légales constituent l’expression de la
synchronisation
• Mettre en œuvre le contrôleur c’est construire un mécanisme opératoire
respectant la spécification de la synchronisation
• Le contrôleur peut être une entité unique (contrôle centralisé)
ou il peut être distribué sur l’ensemble du système (contrôle réparti) ← objet
de ce cours
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 15
Exemple 2 – coopération
Expression de synchronisation
• Dans notre exemple, l’expression de synchronisation est la suivante :
– M2 ≤ B1
– M3 ≤ B3
– F2 ≤ B2
– Si i < j, Mi ≤ Mj, Bi ≤ Bi, Fi ≤ Fj
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 16
Exemple 2 – coopération
Autre expression distribuée, autre expression de synchronisation
• Exercice : trouver une autre décomposition du même exemple et donner
l’expression de synchronisation associée
• Cf. annexe 1
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 17
Exemple 3 – compétition
Présentation de l’exemple
• Deux aides comptables (AC1 et AC2)
dans une entreprise
– Etablissent les factures
– Gèrent les comptes clients
• Un client X effectue deux commandes
C1 et C2
• Sans concertation, les deux
comptables doivent prendre en charge
ces commandes
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 18
Exemple 3 – compétition
Présentation de l’exemple
• Exemple de traitement sans contrôle particulier
• A la fin, la valeur du compte de X est incrémentée de C1 au lieu de C1+C2
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 19
Exemple 3 – compétition
Concept d’exclusion mutuelle
• Explication : AC1 et AC2 entrent en compétition pour l’accès à une
ressource : le compte client dont l’usage en mise à jour est critique
 ressource critique
• Lorsqu’un processus accède à une ressource critique, on dit qu’il est en
section critique
• Toutes les sections critiques d’un ensemble de processus d’un même
système doivent s’exclure mutuellement
 exclusion mutuelle
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 20
Exemple 3 – compétition
Concept d’exclusion mutuelle
• Un protocole doit être défini de manière à garantir cette exclusion.
– Protocole d’acquisition de la ressource critique
– Section critique
– Protocole de libération de la ressource critique
 protocole d’exclusion mutuelle
• Si un processus P entame sa phase d’acquisition alors que la ressources
critique est utilisée par un autre processus P’, il devra attendre (ie. rester
dans la phase d’acquisition) jusqu’à ce que le processus P’ ait terminé son
protocole de libération
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 21
Exemple 3 – compétition
Propriétés des protocoles d’exclusion mutuelle
• Situations à éviter
– Interblocage : il existe au moins un processus qui désire accéder à la section
critique et aucun processus ne peut l’atteindre
– Famine : le protocole d’exclusion mutuelle ne garanti pas que tout processus
désirant accéder à une ressource peut le faire en un temps fini
• Propriétés (souhaitables) des protocoles d’exclusion mutuelle
– Exclusion : A tout instant, un processus au plus se trouve en section critique
pour une ressource donnée
– Equité (ou vivacité) : non famine. Tout processus demandant la section critique
l’atteint en un temps fini.
L’équité entraîne le non interblocage
– Indépendant du fonctionnement applicatif des processus
– Identique à tous les processus
Remarque : il est parfois souhaitable de ne pas exclure une possibilité de
famine (processus prioritaires)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 22
Exemple 3 – compétition
Exclusion mutuelle et ordonnancement
• Différents ordres possibles de passage en section critique (s’il n’y a
pas famine)
– FIFO (les processus accèdent à la section critique dans l’ordre où ils
l’ont demandée)
– Attente linéaire : tout processus demandeur peut se faire doubler une
au plus une fois par chaque processus
– Attente bornée : pour un protocole donné, il existe une fonction f(n) où
n est le nombre de sites, telle qu’un processus donné se fasse doubler
par au plus f(n) processus
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 23
Notions à retenir
• Processus
• Ressource
• Evènement
• Coopération à la réalisation d’une tâche
– Ordonnancement des évènements
– Expression de synchronisation
• Compétition entre plusieurs processus pour l’accès à une ou plusieurs
ressources partagées
– Ressource critique
– Section critique
– Exclusion mutuelle
– Interblocage
– Famine
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 24
Chapitre 2
CSP
Conventions d’écriture : tutoriel
Exemples simples
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 25
CSP
Présentation
• Langage formel permettant de modéliser l’interaction de systèmes
distribués
• Permet l'implémentation rapide des paradigmes classiques de la
concurrence
• Ce n'est pas un langage de programmation complet, mais il a été mis en
pratique industriellement comme un outil de spécification formelle de
l'exécution concurrente de systèmes
• CSP a été décrit par Sir Charles Antony Richard Hoare (Quicksort, logique
de Hoare, langage formel CSP, langage de programmation Occam,
système de synchronisation « moniteur »)
• Champ de recherche toujours actif
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 26
CSP
Présentation
• Modélisation des systèmes distribués = « programmation concurrente »
– Concurrence disjointe : les entités concurrentes ne communiquent et
n'interagissent pas.
– Concurrence compétitive : un ensemble d'entités concurrentes en compétition
pour l'accès à certaines ressources partagées (par exemple le temps CPU, un
port d'entrées/sorties, une zone mémoire).
– Concurrence coopérative : un ensemble d'entités concurrentes qui coopèrent
pour atteindre un objectif commun. Des échanges ont lieu entre les processus.
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 27
CSP
Structure d’un programme
• Suite de commandes et de
déclarations de variables
séparées par des « ; »
Exemple
x : integer ;
y : integer ;
x := 4 ;
• Deux types de commandes
– Simples
• commande nulle (skip)
• commande d'affectation
• commande d'entrée/sortie
– Structurées
• commande parallèle
• commande répétitive
• commande alternative
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 28
CSP
Eléments spécifiques
• Processus
– Syntaxe
processus :: liste_de_commandes
• Tableaux de processus (extension CSP)
– Syntaxe :
P[i][i:1..n] :: liste_de_commandes
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 29
CSP
Eléments spécifiques
• Signal
– Variable complexe
• 1 constructeur = identifiant libre
• 1 ensemble de valeurs (entiers, chaîne de caractères, autres signaux…)
– Syntaxe
constructeur (valeur1 ; … ; valeurN)
– Exemple : p(3,5)
• Constructeur : p
• Valeurs : 3 et 5
• Signal « pur »
– p() est un « signal pur », ie. ne contient pas de valeurs
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 30
CSP
Commande nulle
• Commande nulle
– Ne fait rien, permet juste de
combler un bloc d’instruction vide
– Syntaxe :
skip
Exemple
consommateur[1]!nb -> skip ;
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 31
CSP
Commande d’affectation
• Commande d’affectation
– Permet d’affecter une valeur à une
variable
– Syntaxe :
variable := valeur
Exemple
message : string := "";
nb : integer := 0 ;
nb := nb + 1 ;
x := p(4) ;
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 32
CSP
Commande parallèle
• Commande parallèle
– Permet la mise en concurrence de processus
– Syntaxe :
[
proc1 :: liste de commandes
||
proc2 :: liste de commandes
||
…
]
– La commande se termine lorsque tous les processus qu’elle définit sont terminés
– L’échec d’un processus entraîne l’échec de la commande
– Une variable définie avant une commande parallèle est visible des tous les
processus qu’elle contient  partage de ressources dont les contraintes (accès
exclusif etc.) sont à la charge du programmeur
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 33
CSP
Commandes d’entrée/sortie
• Commandes d’entrée/sortie
– Permet la communication entre processus
– Syntaxe commande d’entrée :
processus_source ? variable_cible (communication synchrone)
processus_source ?? variable_cible (communication asynchrone)
– Syntaxe commande de sortie :
processus_cible ! variable_source (communication synchrone)
processus_cible !! variable_source (communication asynchrone)
• Sonde booléenne
– Permet d’établir la possibilité de communication avec un processus
– Prend la valeur « vraie » sur le processus en question est bloqué en attente de
communication
– Syntaxe
!?processus
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 34
CSP
Commande d’entrée/sortie
• Cas particulier de la communication synchrone
– La communication synchrone est possible si :
• Il y a une commande d’entrée et une commande sortie
• Les deux processus se nomment mutuellement
• La variable cible et la variable source sont de même type
– Sinon, les processus sont mis en attente  interblocage
– Le premier processus demandant la communication est mis en attente jusqu’à ce
que le second le rejoigne
Principe du rendez-vous
• Si un des processus est mort, toute commande d’entrée sortie impliquant se
processus échoue
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 35
CSP
Commande d’entrée/sortie
• Exemple :
• Cas particulier : synchronisation sans transmission de variable
Cas particulier d’une synchronisation sans transmission de valeur (utilisation d’un signal pur)
[
Producteur :: Consommateur ! p() ;
||
Consommateur :: Producteur ? p() ;
]
Le processus producteur transmet une variable x au processus consommateur
[
Producteur :: Consommateur ! x ;
||
Consommateur :: Producteur ? x ;
]
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 36
CSP
Commande alternative
• Commande alternative = ensemble de commandes sélectives
• Commande sélective
– Permet de modéliser une liste de commandes à exécuter si certaines conditions
(la « garde ») sont remplies
– Commande sélective = une garde + une liste de commande
– Schéma : condition  action
– Syntaxe
garde  liste de commandes
• Garde
– Une garde = (une ou plusieurs expression booléenne) et/ou (une commande
d’entrée) (l’une ou l’autre peut être omise)
– Syntaxe
expression_booléenne ; commande_entrée
Ici, « ; » = opérateur de conjonction
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 37
CSP
Commande alternative
• Evaluation d’une garde
– Trois valeurs possibles (logique trivaluée) : vraie, fausse ou neutre
– Expression booléenne : vraie ou fausse
– Commande d’entrée
• Vrai si la communication est possible immédiatement
• Neutre si le processus nommé par la commande n’est pas encore prêt
• Faux si le processus nommé par la commande est « mort » (ie. a fini son exécution)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 38
CSP
Commande alternative
• Evaluation d’une garde
– Evaluation d’une garde comprenant une expression booléenne ET une
commande d’entrée
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 39
CSP
Commande alternative
• Commande alternative
– Ensemble de commandes sélectives (ou « gardées »)
– Syntaxe
[
garde1  liste de commandes
[]
garde2  liste de commandes
[]
…
]
– Si une ou plusieurs gardes sont vraies, sélection aléatoire d’une des gardes
– Si aucune garde n’est vraie, mais que certaines sont neutres, mise en attente
des gardes neutres
– Si toutes les gardes sont fausses, la commande alternative échoue
– Si une garde est sélectionnée, la liste de commandes correspondantes est
exécutée
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 40
CSP
Commande alternative
• Remarque : seules les commandes d’entrées sont autorisées dans les
gardes afin d’éviter les incohérences
Exemple autorisant les commandes de sorties dans les gardes
[
Proc1 ::
[ proc2 ? p()  …
[] proc2 ? q()  …
]
||
Proc2 ::
[ proc1 ! p()  …
[] proc1 ! q()  …
]
]
Proc1 et Proc2 arrivent simultanément sur leur commande alternative
Toutes les gardes sont potentiellement vraies. Si c’est le cas, Proc1 en choisi aléatoirement une et Proc2 fait de même
Si Proc1 et Proc2 choisissent la même communication : pas de problème
Sinon  interblocage
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 41
CSP
Commande répétitive
• Commande répétitive
– Permet de répéter une même
commande alternative tant qu’au
moins une des gardes est évaluée
à vrai
– Syntaxe
* commande alternative
Exemple
i := 0 ;
* [
i < 10  i := i+1
]
Ici la commande répétitive se terminera lorsque i
aura atteint la valeur 10
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 42
CSP
Définition de processus
• Définition de processus
– Permet de définir un processus à
l’extérieur d’une commande
parallèle ou alternative (afin de
clarifier le code)
– Syntaxe
PROCESSUS == liste
d’instructions
Exemple
PRODUCTEUR ==
…
CONSOMMATEUR ==
…
MAIN ==
[
producteur :: PRODUCTEUR
||
consommateur :: CONSOMMATEUR
]
La liste d’instructions MAIN est alors cette
exécutée au lancement du programme
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 43
CSP
Autres commandes et conventions d’écriture
• Autres commandes
– Affichage : print (message)
– Aléatoire : x := random (debut, fin)
– Mise en attente : sleep (tps)
• Définition de constantes : define CONSTANTE valeur
• Commentaires : -- commentaires
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 44
CSP
Exercices
• Cf. annexe 2
Exercice 1 Ecrire le processus p cherchant dans un tableau t de 100 éléments
(indicés de 1 à 100) la place du « 0 » de plus petit indice
Exercice 2 Ecrire le processus X qui reçoit des caractères d’un processus
« gauche » et les transmet, à l’exception des blancs, au processus
« droite » (réception synchrone, émission asynchrone)
Exercice 3 A et B envoient des entiers à C qui les cumule par « paquets ». Dès
qu’un paquet est ≥ 1000, C envoi la somme correspondante à D
Ecrire le processus C
A
B
C D
entier
entier
Ʃ
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 45
Chapitre 3
1 producteur / 1 consommateur
Présentation de l’exemple
Expression des conditions de production et de consommation
Mise en œuvre distribuée
Notion de prédicat régulier
Algorithme
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 46
1 producteur / 1 consommateur
Présentation de l’exemple
• 2 processus :
– « producteur »
– « consommateur »
• Deux opérations :
– « produire », opération du processus « producteur »
– « consommer », opération du processus « consommateur »
• Le producteur produit des message à destination du consommateur
qui les consomme
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 47
1 producteur / 1 consommateur
Présentation de l’exemple
• Invariant du système
(I1) : il existe au plus n messages produits et non consommés
• Invariant représenté par un tampon (= un tableau) pouvant contenir n
informations est partagé par les deux processus
• L’opération « produire » n’est permise que si le tampon contient au moins
une case libre (vide)
• L’opération « consommer » n’est permise que si le tampon contient au moins
une case pleine (non vide)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 48
1 producteur / 1 consommateur
Expression des conditions de production et de consommation
• 4 compteurs monotones croissants
– DEBPROD : nombre de productions commencées (ie. nombre de débuts
d’exécution de « produire »)
– FINPROD : nombre de productions terminées
– DEBCONS : nombre de consommations commencées
– FINCONS : nombre de consommations terminées
• Il est nécessaire de compter séparément des débuts et fin d’opérations
« produire » et « consommer » car elle ont une durée d’exécution non nulle.
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 49
1 producteur / 1 consommateur
Expression des conditions de production et de consommation
• A tout instant, il y a plus de production commencées qu’il y en a de
terminées. Idem pour les consommations.
On a donc :
– FINPROD ≤ DEBPROD
– FINCONS ≤ DEBCONS
• « condition de production » = il y a au moins une case libre
Cp : (Cp) DEBPROD - FINCONS < n
• « condition de consommation » = il y a au moins une case pleine
Cc : (Cc) DEBCONS - FINPROD < 0
• Nouvelle expression de l’invariant du système
(I2) : l’opération « produire » peut s’exécuter si et seulement si Cp est
vrai, l’opération « consommer » peut s’exécuter si et seulement si Cc
est vrai
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 50
1 producteur / 1 consommateur
Mise en œuvre distribuée
• 1 site de production (Sp), hébergeant le processus « producteur »
• 1 site de consommation (Sc), hébergeant le processus « consommateur »
• Connectés entre eux par un réseau
• Compteurs modifiés par le « producteur » = variables du site (Sp)
• Compteurs modifiés par le « consommateur » = variables du site (Sc)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 51
• MAIS, le producteur doit pouvoir évaluer la condition de production Cp et le
consommateur doit pouvoir évaluer la condition de consommation Cc
• DONC, l’évaluation des conditions Cp et Cc implique la lecture de variables
se trouvant sur l’autre site
• Rappel :
« condition de production » Cp : (Cp) DEBPROD - FINCONS < n
« condition de consommation » Cc : (Cc) DEBCONS - FINPROD < 0
1 producteur / 1 consommateur
Mise en œuvre distribuée
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 52
• Conséquences
L’évaluation de Cp par le site producteur nécessite un échange de message
avec le site consommateur afin d’obtenir la valeur de FINCONS
L’évaluation de Cc par le site consommateur nécessite un échange de
message avec le site producteur afin d’obtenir la valeur de FINPROD
A cause des délais de transmission, le producteur ne peut connaître à un
instant donné la valeur exacte de FINCONS. Il doit se contenter d’une copie
de la valeur, éventuellement en retard sur la laveur exacte.
Idem pour le consommateur avec FINPROD.
1 producteur / 1 consommateur
Mise en œuvre distribuée
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 53
• Idée
– Disposer chez le producteur d’une copie de FINCONS : IFINCONS
– Disposer chez le consommateur d’une copie de FINPROD : IFINPROD
• IFINCONS est une image retardée de FINCONS
• IFINPROD est une image retardée de FINPROD
• Hypothèse : l’échange de messages entre Sp et Sc se fait sans
déséquencement
• On a donc à tout instant : IFINCONS ≤ FINCONS et IFINPROD ≤ FINPROD
1 producteur / 1 consommateur
Mise en œuvre distribuée
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 54
• Exercice
– Cp’ = nouvelle version de la condition de production exprimée avec les
variables locales au site de production
– Cc’ = nouvelle version de la condition de consommation exprimée avec
les variables locales au site de consommation
– Exprimer Cp’ et Cc’
– Montrer que Cp’ Cp⇒
– Montrer que Cc’ Cc⇒
• Cf. annexe 3
1 producteur / 1 consommateur
Mise en œuvre distribuée
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 55
1 producteur / 1 consommateur
Notion de prédicat régulier
• Définition : prédicat régulier
Soit le prédicat (E) : ∑i αi Ci ≥ K
où αi > 0 ou αi < 0
Ci : compteurs monotones croissants
K : constante entier relatif
Le prédicat (E) est dit régulier par rapport à un compteur Ci si son coefficient
αi est positif
• Théorème
Si (P) est un prédicat de synchronisation et s’il est régulier par rapport
à un compteur Ci , alors on peut (sans danger) utiliser une version
retardée de Ci
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 56
1 producteur / 1 consommateur
Notion de prédicat régulier
• Dans notre exemple :
• Avantages :
test de 2 variables locales
désynchronisation entre évaluation du prédicat et communication de de la
valeur des compteurs
• Inconvénients :
ralentit la production (Cp peut autoriser la production alors que Cp’ l’interdit)
(Cp) : DEBPROD – FINCONS < n
FINCONS – DEBPROD > n
Le coefficient de FINCONS est 1, donc (Cp) est régulier par rapport à FINCONS
L’utilisation de IFINCONS (≤FINCONS) est donc valide (ie. si Cp autorise à produire, alors Cp’ aussi)
(Cc) : DEBCONS – FINPROD < 0
FINPROD – DEBCONS > 0
Le coefficient de FINPROD est 1, donc (Cc) est régulier par rapport à FINPROD
L’utilisation de IFINPROD (≤FINPROD) est donc valide (ie. si Cc autorise à consommer, alors Cc’ aussi)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 57
1 producteur / 1 consommateur
Architecture
• Recommandation : séparer le processus « applicatif » du processus « contrôleur »
• Le tableau « tampon » peut être implémenté indifféremment sur l’un ou l’autre des
deux sites, ou sur un troisième. Ici, sur le site de consommation.
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 58
1 producteur et 1 consommateur
Algorithmes
• Cf. Annexe 4
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 59
Chapitre 6
N producteurs / 1 consommateur
Présentation de l’exemple
Exclusion mutuelle par jeton circulant
Algorithme
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 60
N producteurs / 1 consommateur
Présentation de l’exemple
• m producteurs : P1, P2, … Pm
• 1 consommateur : C
• 1 tampon à n cases
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 61
N producteurs / 1 consommateur
Présentation de l’exemple
• DEBPROD et FINPROD : début et fin d’une production, une seule
production à la fois. Ces variables doivent être partagées par l’ensemble
des producteurs.
 ressources critique
• Idem pour IFINCONS nécessaire à l’évaluation de la condition de
production
• Besoin d’un protocole d’exclusion mutuelle pour l’accès à ces variables,
assurant entre autre :
– L’équité : un site demandant l’accès à une ressource doit l’obtenir au bout d’un
temps fini
– La vivacité : absence d’interblocage
• 3 propositions de mise en œuvre
– Technique du jeton circulant
– Technique des distributions par duplication
– Technique des distributions par éclatement
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 62
N producteurs / 1 consommateur
Technique du jeton circulant - présentation
• L’ensemble des sites sont sur un
anneau unidirectionnel
• Hypothèse : le positionnement des
processus sur l’anneau est statique
• Principe : le jeton est un message
circulant sur l’anneau dont la
possession donne le droit d’entrer en
section critique (ie. d’accéder à
DEBPROD, FINPROD et IFINCONS,
et donc de produire)
• Dans le jeton, on place DEBPROD et
IFINCONS (pour l’évaluation de la
condition de production)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 63
N producteurs / 1 consommateur
Technique du jeton circulant – première solution non équitable
• Quand un processus Pi (i = 1..m) reçoit le jeton, on distingue deux
possibilités
– Pi ne veut pas produire  envoi du jeton au successeur Pi+1
– Pi veut produire 
Evaluation de la condition de production
Si condition ok :
production
modification de DEBPROD
envoi du jeton au successeur
Sinon, envoi du jeton au successeur
• Quand C reçoit le jeton, il consomme un message s’il y en a au moins un
dans le tampon
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 64
N producteurs / 1 consommateur
Technique du jeton circulant – première solution non équitable
• Constatation : les m-n derniers processus peuvent être en situation de
famine si les n premiers veulent tous produire quand le jeton passe
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 65
N producteurs / 1 consommateur
Technique du jeton circulant – deuxième solution équitable
• Idée : quand un processus Pi a le jeton et veut produire, il prend son rang
dans une file des requêtes de production. Il produit alors à deux conditions
– Il reste de la place dans le tampon
– Il n’occupe pas la place d’une requête plus prioritaire (ie. plus ancienne)
• Hypothèse : chaque producteur ne peut avoir au plus qu’une requête de
production en attente
• Nouvelle variable : COMPTEREQ
Compteur monotone croissant représentant le nombre de requêtes de
production, partagé en lecture et écrite par l’ensemble des processus
• L’info véhiculée par le jeton devient :
– DEBPROD
– IFINCONS
– COMPTEREQ
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 66
N producteurs / 1 consommateur
Technique du jeton circulant – deuxième solution équitable
• Fonctionnement : quand Pi reçoit le jeton
– S’il ne veut pas produire, il transmet le jeton à son successeur
– S’il veut produire
si n’a pas encore de requête en attente
il « prend son rang » : COMPTEREQ := COMPTEREQ + 1
Rang_i := COMPTEREQ
s’il a déjà une requête en attente, COMPTEREQ et Rang_i ne sont pas
modifiés
Pi va produire s’il a un « comportement équitable » et si la condition de
production est vérifiée (Cp’) DEBPROD – IFINCONS < n
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 67
N producteurs / 1 consommateur
Technique du jeton circulant – deuxième solution équitable
• Comportement équitable
nb de places libres (perçues par Pi) > nb de requêtes plus prioritaires
(anciennes) que celle de Pi
n - (DEBPROD – IFINCONS) > COMPTEREQ – 1 – DEBPROD
n – DEBPROD + IFINCONS > Rang_i – 1 – DEBPROD
n + IFINCONS > Rang_i – 1
(Cp’’) Rang_i – IFINCONS ≤ n
• Cp’’ Cp’⇒
(Cp’’) Rang_i – IFINCONS ≤ n
Avant que le processus ne produise Rang_i > DEBPROD
DEBPROS – IFINCONS < Rang_i – IFINCONS ≤ n
(Cp’) DEBPROD – IFINCONS < n
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 68
N producteurs / 1 consommateur
Technique du jeton circulant – deuxième solution équitable
• Exercice : simuler deux tours de jetons en considérant que tous les
producteurs veulent toujours produire
• Cf. annexe 5
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 69
N producteurs / 1 consommateur
Technique du jeton circulant – algorithme
• Cf. annexe 6
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 70
N producteurs / 1 consommateur
Technique de distribution par duplication – présentation
• Retour au problème initial :
– m producteurs : P1, P2, … Pm
– 1 consommateur : C
– 1 tampon à n cases
• Idée : au lieu de transporter le
compteur DEBPROD au moyen
d’un jeton, cette variable peut être
dupliquée sur chaque site de
production Pi.
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 71
N producteurs / 1 consommateur
Technique de distribution par duplication – présentation
• Pour cela, il faut assurer deux types de cohérence vis-à-vis de DEBPROD :
1. Cohérence en lecture : en l’absence de message en transit dans le réseau,
toutes les copies de DEBPROD doivent avoir la même valeur
2. Cohérence en écriture : toute modification de DEBPROD doit être réalisée en
Exclusion Mutuelle (EM)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 72
N producteurs / 1 consommateur
Technique de distribution par duplication – présentation
• Solutions
1. Tout site modifiant DEBPROD envoie une copie à l‘ensemble des autres sites
2. En solution centralisée :
les requêtes d’accès à DEBPROD sont placées dans une file d’attente qui
matérialise le fait que l’horloge unique du système permet de prendre en compte
la priorité (ie. est capable d’ordonnancer les requêtes)
En solution répartie :
Simuler une horloge commune = chaque site gère une horloge logique locale.
Tout envoi de message se fait en estampillant (datant) le message avec la
valeur de l’horloge locale.
Horloge logique
– assure une cohérence relative de l’horloge entre tous les systèmes qui interagissent
– beaucoup plus facile à mettre en œuvre que la synchronisation absolue de l’horloge
– permet de mettre en accord les processus sur l’ordre des évènements
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 73
N producteurs / 1 consommateur
Technique de distribution par duplication – hypothèses
• Solutions choisie : algorithme de Lamport
– Estampillage des messages
– Gestion d’une file d’attente distribuée
• Hypothèses
– H1 : tout site peut communiquer
directement avec tout autre site (maillage
complet)
– H2 : pas de perte de messages (délais
d’acheminement finis)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 74
N producteurs / 1 consommateur
Technique de distribution par duplication – hypothèses
• Hypothèses (suite)
– H3 : non-déséquencement des messages (l’ordre de réception sur un site Sj
d’une suite de messages provenant d’un même site Si est identique à l’ordre
d’émission)
– H4 : la panne ou l’isolement d’un site est détecté et signalé aux sites qui tentent
de communiquer avec lui
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 75
N producteurs / 1 consommateur
Technique de distribution par duplication – notions de base
• Evènement = instruction exécutée par un processeur
– Envoi de message
– Réception de message
– Changement d’état local
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 76
N producteurs / 1 consommateur
Technique de distribution par duplication – notions de base
• Précédence causale
– Définition d’une relation de précédence entre les évènements d’un système
réparti : si a et b sont deux évènements, on dit que a précède b si d’une des
conditions suivantes est satisfaite :
• a et b sont générés sur le même si et a est antérieur à b
• a est l’envoi d’un message depuis un site et b la réception de ce même message sur
un autre site
– On note alors a  b la relation « a précède b »
– Si a  b et b  c alors a  c
– On parle de « précédence causale » car un évènement a ne peut avoir influencé
un évènement b que si a  b
a « cause » b a⇒  b (la réciproque n’est pas –forcément– vraie )
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 77
N producteurs / 1 consommateur
Technique de distribution par duplication – notions de base
• Passé (historique) d’un évènement
– hist(e) = e U ensemble des évènements e’ tels que e’  e
– Seul le passé de e peut avoir influencé e
– hist(e24) = {e24, e23, e22, e21, e11, e31}
– On ne peut rien dire sur e24 et e32
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 78
N producteurs / 1 consommateur
Technique de distribution par duplication – notions de base
• Chaine causale
– Ensemble des e0 … en tels que i [1..n], e∀ ∈ i-1  ei
• Concurrence (ou indépendance causale)
a || b ¬ (a⇔  b) et ¬ (b  a)
⇔ a hist(b) et b hist(a)∉ ∉
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 79
N producteurs / 1 consommateur
Technique de distribution par duplication – estampillage
• La technique des estampilles permet de définir un ordre partiel ou global
en effectuant une datation des évènements
• Horloge de lamport
– Chaque site Si gère une horloge logique hi (variable entière initialisée à 0)
– Lorsqu’un évènement a se produit sur Si
• hi := hi + 1
• La date de a, notée h(a) prend comme valeur hi
– Lors de l’émission d’un message m par le site Si
• hi := hi + 1
• Le message m est estampillé par (hi, i) et devient donc (m, hi, i)
hi est alors la date d’émission du message
– Lors de la réception d’un message (m, hi, i) par Sj
• hj := hj + 1
• hj = (max(hi, hj) + 1)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 80
N producteurs / 1 consommateur
Technique de distribution par duplication – estampillage
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 81
N producteurs / 1 consommateur
Technique de distribution par duplication – estampillage
• Ordre partiel
– Les dates des évènements permettent d’établir un ordre partiel entre l’ensemble
des évènements constitués par les envois et les réceptions de messages
– Si a  b, alors la date de a est inférieure à la date de b
– Partiel : plusieurs évènements peuvent être affectés à la même date
• Ordre total strict (noté <)
– Un site peut recevoir plusieurs messages avec la même date d’émission
– S’il doit établir un ordre total strict, on convient que entre deux messages qui ont
la même date d’émission, c’est celui qui provient du site de plus petit numéro qui
est antérieur à l’autre
– Si a et b sont deux avènements ayant lieu sur les sites i et j
(a<b) h(a)<h(b) ou (h(a)=h(b) et i<j)⇔
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 82
N producteurs / 1 consommateur
Technique de distribution par duplication – file d’attente partagée
• Le système gère une file d’attente dont une copie est disponible sur chaque
site
• Chaque message demandant l’accès à la Section Critique (SC) ou
informant de la libération de la SC sera diffusé à tous les sites
• Chaque site héberge un tableau de deux colonnes et d’autant de lignes qu’il
y a de processus
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 83
N producteurs / 1 consommateur
Technique de distribution par duplication – file d’attente partagée
• Trois types de messages
– Requête (Req) : message diffusé par un gestionnaire désirant entrer en SC (ie.
obtenir l’EM), vers tous les autres gestionnaires
– Libération (Rel) : message diffusé par un gestionnaire qui vient de recevoir du
processus auquel il est associé une information de restitution de la ressource
critique, vers tous les autres gestionnaires
– Acquittement (Ack) : accusé de réception envoyé par un gestionnaire à un autre
gestionnaire dont il vient de recevoir un message de type requête
• Structure d’un message
– Type_message (date_évènement, n°_site_émetteur)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 84
N producteurs / 1 consommateur
Technique de distribution par duplication – file d’attente partagée
• Chaque site possède un tableau TAB[1..m](où m est le nombre de sites)
dans lequel le producteur Pi inscrit à l’indice j
– (Req, h) lorsqu’il reçoit un message de type requête estampillé (h, j)
– (Rel, h) lorsqu’il reçoit un message de type libération estampillé (h, j)
– (Ack, h) lorsqu’il reçoit un message de type acquittement estampillé par (h, j),
mais ceci uniquement dans le cas où ce qui serait effacé ne correspond pas à un
message de type requête. Sinon le message d’acquittement est ignoré
– Pi range également dans TAB[i] les informations correspondant aux messages
qu’il envoie, dans les mêmes conditions que ci-dessus
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 85
N producteurs / 1 consommateur
Technique de distribution par duplication – file d’attente partagée
• Pi veut entrer en section critique
– Pi diffuse Req(hi, i) à tous les aures sites
– TAB[i] := (Req, hi)
• Pi quitte la section critique
– Pi diffuse Rel(hi, i) à tous les aures sites
– TAB[i] := (Rel, hi)
• Pi reçoit un message Req(hj, j)
– Pi envoi Ack(hi, i) à Pj
– TAB[j] := (Req, hj)
• Pi reçoit un message Rel(hj, j)
– TAB[j] := (Rel, hj)
• Pi reçoit un message Ack(hj, j)
– Si TAB[j].type = Req  skip
– Sinon TAB[j] := (Ack, hj)
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 86
N producteurs / 1 consommateur
Technique de distribution par duplication – file d’attente partagée
• Un gestionnaire Pi qui désire obtenir la section critique pour le
processus dont il gère le contrôle ne peut le faire que si TAB[i] est le
message le plus ancien noté dans TAB selon la relation d’ordre
définie par les estampilles, c’est-à-dire si
j [1..m], j ≠ i∀ ∈
(TAB[i].date < TAB[j].date) ou (TAB[i].date = TAB[j].date et i < j )
Pi peut entrer en SC⇔
• Initialisation identique pour chaque site
i [1..m] TAB[i] := (rel, 0)∀ ∈
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 87
• A quel moment P1 et P2
entrent-ils en section
critique ?
• Cf. annexe 7
N producteurs / 1 consommateur
Technique de distribution par duplication – exemples
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 88
• Préciser les horloge
logiques et estampiller les
messages
• A quel moment P1, P2 et
P3 entrent-ils en section
critique ?
• Cf. annexe 7
N producteurs / 1
consommateur
Technique de distribution par
duplication – exemples
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 89
N producteurs / 1 consommateur
Technique de distribution par duplication – algorithme de Lamport
• Cf. annexe 8
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 90
N producteurs / 1 consommateur
Technique de distribution par éclatement – présentation
• Retour au problème initial :
– m producteurs : P1, P2, … Pm
– 1 consommateur : C
– 1 tampon à n cases
• L’algorithme de Lamport utilise des variables locales reliées par des
contraintes globales
• Idée : diminuer fortement les contraintes globales
 on divise les places du tampon entre chaque producteur
• Un quota = ni de places libres dans les tampon est alloué à chaque Pi
• Il n’existe plus de compétition entre le Pi pour l’accès au tampon
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 91
N producteurs / 1 consommateur
Technique de distribution par éclatement – condition de production
• La condition de production pour Pi s’écrit alors :
(Cpi) DEBPRODi – IFINCONSi < ni
• DEBPROBi : nombre de productions commencées par Pi
• IFINCONSi : copie de FINCONSi, le nombre de consommations dans le
quota alloué à Pi
• Cpi Cp⇒
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 92
Merci pour votre attention
Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 93
Références
• Noël Plouzeau, Michel Raynam, Jean-Pierre Verjus
Producteurs / consommateur : quelques solutions réparties
• C.A.R. Hoare
Communicating Sequential Processes
• Irène Charon
Algorithmique du contrôle réparti
• Références ENSSAT
– Cours de Marc Guyomard
– Cours de Allel Hadjali
• http://fr.wikipedia.org/wiki/Communicating_sequential_processes
• http://fr.wikipedia.org/wiki/Programmation_concurrente
• http://fr.wikipedia.org/wiki/C._A._R._Hoare

Contenu connexe

Tendances

Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Sana Aroussi
 
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxGestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
Oussama Bessrour
 

Tendances (20)

Systèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processusSystèmes d'Exploitation - chp2-gestion des processus
Systèmes d'Exploitation - chp2-gestion des processus
 
Cours 70 410-1
Cours 70 410-1Cours 70 410-1
Cours 70 410-1
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
LVM "Linux "
LVM  "Linux "LVM  "Linux "
LVM "Linux "
 
Chapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateurChapitre i architecture générale de l’unité centrale d’un ordinateur
Chapitre i architecture générale de l’unité centrale d’un ordinateur
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Administration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveurAdministration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveur
 
Ssi
SsiSsi
Ssi
 
Gestion des incidents ITIL
Gestion des incidents ITILGestion des incidents ITIL
Gestion des incidents ITIL
 
Le modèle cobit
Le modèle cobitLe modèle cobit
Le modèle cobit
 
Administration reseau
Administration reseauAdministration reseau
Administration reseau
 
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxGestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
 
TP GLPI
TP GLPITP GLPI
TP GLPI
 
Architecture des ordinateurs : memoires
Architecture des ordinateurs : memoiresArchitecture des ordinateurs : memoires
Architecture des ordinateurs : memoires
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1
 
Cartographie Métier : méthodologie
Cartographie Métier : méthodologieCartographie Métier : méthodologie
Cartographie Métier : méthodologie
 
Audit et sécurité des systèmes d'information
Audit et sécurité des systèmes d'informationAudit et sécurité des systèmes d'information
Audit et sécurité des systèmes d'information
 
INTRODUCTION A BPM
INTRODUCTION A BPMINTRODUCTION A BPM
INTRODUCTION A BPM
 
Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données réparties
 

Similaire à Cours d'algorithmique distribuée (2010-2011)

Python appliqué en apprentissage automatique (Applied Python in Machine Learn...
Python appliqué en apprentissage automatique (Applied Python in Machine Learn...Python appliqué en apprentissage automatique (Applied Python in Machine Learn...
Python appliqué en apprentissage automatique (Applied Python in Machine Learn...
Guillaume Chevalier
 
Restructuration d applications Java Temps réel
Restructuration d applications Java Temps réelRestructuration d applications Java Temps réel
Restructuration d applications Java Temps réel
Cédric Mouats
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage uml
vangogue
 

Similaire à Cours d'algorithmique distribuée (2010-2011) (20)

Cours ALGR M1.pdf
Cours ALGR M1.pdfCours ALGR M1.pdf
Cours ALGR M1.pdf
 
Python appliqué en apprentissage automatique (Applied Python in Machine Learn...
Python appliqué en apprentissage automatique (Applied Python in Machine Learn...Python appliqué en apprentissage automatique (Applied Python in Machine Learn...
Python appliqué en apprentissage automatique (Applied Python in Machine Learn...
 
La gestion des processus
La gestion des processusLa gestion des processus
La gestion des processus
 
ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0ALT.NET Modéliser Parallèle avec C# 4.0
ALT.NET Modéliser Parallèle avec C# 4.0
 
Restructuration d applications Java Temps réel
Restructuration d applications Java Temps réelRestructuration d applications Java Temps réel
Restructuration d applications Java Temps réel
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdf
 
Exposé de SE Systemes distribués
Exposé de SE Systemes distribuésExposé de SE Systemes distribués
Exposé de SE Systemes distribués
 
Cours1.pptx
Cours1.pptxCours1.pptx
Cours1.pptx
 
Utc apm human talks compiegne
Utc apm human talks compiegneUtc apm human talks compiegne
Utc apm human talks compiegne
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptx
 
Uml Cas Utilisation introduction
Uml Cas Utilisation introductionUml Cas Utilisation introduction
Uml Cas Utilisation introduction
 
Cours chapitre9 2012
Cours chapitre9 2012Cours chapitre9 2012
Cours chapitre9 2012
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhvSOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
SOA-Partie 2.pdf hvjhvhjvkhvhjvhvhvjhvkhv
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexes
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdf
 
Rattrapage uml
Rattrapage umlRattrapage uml
Rattrapage uml
 
Methodo support
Methodo supportMethodo support
Methodo support
 

Dernier

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (18)

Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 

Cours d'algorithmique distribuée (2010-2011)

  • 1. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 1 Algorithmique distribuée ENSSAT Elodie Descharmes Filière IMR 2 2010-2011
  • 2. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 2 Plan du cours 0 Introduction Définition d’un système réparti, problématique globale 1 Exemples informels introductifs Introduction aux principales notions utiles en algorithmique distribuée 1 : notion processus 2 : notion de séquences d’évènements, expression de synchronisation 3 : exclusion mutuelle 2 CSP Tutoriel Exemples simples 3 1 producteur / 1 consommateur Présentation de l’’exemple et mise en œuvre distribuée Notion de prédicat régulier Algorithme 4 N producteurs / 1 consommateur Présentation de l’exemple et mise en œuvre distribuée Algorithme Contrôle continu
  • 3. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 3 Introduction Généralités • Informatique classique – Centralisation • Des moyens de calcul • Des moyens de stockage • Du contrôle • Des données • Informatique parallèle – Motivations • Calcul intensif, applications scientifiques • Gestion de grandes masses de données – Solution • Augmenter la puissance de calcul • Augmenter le nombre de processeurs
  • 4. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 4 Introduction Généralités • Informatique répartie • Développement des réseaux • Intégration d’applications séparées • Pénétration de l’informatique dans tous les domaines • Informatique mobile • Utilisateurs nomades • Moyens de traitement légers • Informatique intégrées aux objets • Informatique pervasive • Accès à l’information et aux services à tout moment, de n’importe où, avec n’importe quel terminal  Solution : systèmes répartis – Répartition • Des moyens de calcul • Des moyens de stockage • Des données • Du contrôle
  • 5. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 5 • Définition : système (ou architecture) distribué (ou réparti) – Ensemble de processus – Coopérant à un même service – S’exécutant en parallèle – Sur différents sites En anglais = « distributed architecture » Hypothèse de simplification : les processus sont placés sur des sites distincts, un processus par site • Définition : algorithme de contrôle distribué – Contrôle des mécanisme de communication et de synchronisation entre processus – Pas de mémoire commune • Définition : algorithme de contrôle centralisé – Contrôle des mécanisme de communication et de synchronisation entre processus – Mémoire(s) commune(s) Introduction Premières définitions
  • 6. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 6 • Plusieurs processus concurrents sur des sites différents • Pas de mémoire commune, pas d’horloge partagée • Les délais de transmission de messages sont non négligeables • Chaque processus ne connaît à un instant donné que son propre état. Il n’y a pas de vision globale de l’état du système. • La réception d’information venant d’un autre site l’informe sur son état antérieur, mais pas sur l’état actuel  concepts, mécanismes, techniques et outils adaptés au contexte des systèmes distribués • Exemple de problème à éviter : l’interblocage Se produit lorsque deux processus concurrents s'attendent mutuellement. Les processus bloqués dans cet état le sont définitivement. Introduction Enoncé du problème
  • 7. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 7 Introduction Pourquoi des systèmes distribués • Avantages des systèmes distribués – Coût : plusieurs processeurs à bas prix – Puissance de calcul et de stockage : aucune machine centralisée ne peut rivaliser – Performance (accélération) : via du calcul parallèle – Adaptation : transparence réseau, interopérabilité – Fiabilité : résistance globale du système aux pannes locales – Extensibilité : croissance progressive selon le besoin
  • 8. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 8 Chapitre 1 Exemples informels introductifs Exemple 1 : notion de processus Exemple 2 : coopération entre processus Exemple 3 : compétition entre processus
  • 9. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 9 Exemple 1 – processus Présentation de l’exemple, expression distribuée • Exemple séquentiel • Intuitivement, on comprend les tâches de cette séquence peuvent être séparées en trois activités indépendantes : • Ses trois activités peuvent se dérouler sur des processus différents • Formalisme CSP i := 1 j := j+1 k := l*2 ; l := l+1 i := 1 ; j := j+1 ; k := l*2 ; l := l+1 [ i := 1 || j := j+1 || k := l*2 ; l := l+1 ]
  • 10. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 10 Exemple 1 – processus Notion de processus • Processus ≠ programme – Programme = description d’un calcul – Processus = déroulement d’un calcul • Un programme peut engendrer plusieurs processus • Pour s’exécuter, un processus à besoin de ressource(s) – Processeur – Accès à une variable – Signal…
  • 11. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 11 Exemple 2 – coopération Présentation de l’exemple • Exemple séquentiel : la recette de la mousse au chocolat 1. Chauffer le chocolat 2. Casser les œufs 3. Battre les blancs 4. Mélanger les jaunes et le sucre 5. Mélanger le chocolat et le résultat de (4) 6. Mélanger les blancs et le résultat de (5)
  • 12. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 12 Exemple 2 – coopération Expression distribuée • Expression distribuée – Il peut être intéressant de découper ce programme en plusieurs processus (efficacité, clarté) – Choix arbitraire : décomposition en fonction des ressources nécessaires à l’exécution du programme • Four • Batteur • Mixeur  3 processus F, M, B Processus F Processus M Processus B chauffer_chocolat casser_œufs ; battre_blancs a = mélanger_jaunes_sucre ; b = mélanger_chocolat_et a ; Mélanger_blancs_et b
  • 13. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 13 Exemple 2 – coopération Séquences d’évènements • Ces processus sont en relation de collaboration pour l’élaboration de la mousse au chocolat • On peut définir pour chaque étape un évènement de début et un évènement de fin (durée nulle par définition) • On a les séquences d’évènements suivantes : – M2 ≤ B1 – M3 ≤ B3 – F2 ≤ B2 – Si i < j, Mi ≤ Mj, Bi ≤ Bi, Fi ≤ Fj Processus F Processus M Processus B (F1) chauffer_chocolat (F2) (M1) casser_œufs (M2) ; battre_blancs (M3) (B1) a = mélanger_jaunes_sucre (B2) ; b = mélanger_chocolat_ a (B3) ; Mélanger_blancs_ b (b4)
  • 14. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 14 Exemple 2 – coopération Expression de synchronisation • Synchroniser le système = cadencer l’occurrence des évènements • Mise en œuvre par un contrôleur qui – Perçoit les occurrence des évènements – Peut ralentir ou arrêter un processus • Définition : expression de synchronisation – L’ensemble des séquences d’évènements légales constituent l’expression de la synchronisation • Mettre en œuvre le contrôleur c’est construire un mécanisme opératoire respectant la spécification de la synchronisation • Le contrôleur peut être une entité unique (contrôle centralisé) ou il peut être distribué sur l’ensemble du système (contrôle réparti) ← objet de ce cours
  • 15. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 15 Exemple 2 – coopération Expression de synchronisation • Dans notre exemple, l’expression de synchronisation est la suivante : – M2 ≤ B1 – M3 ≤ B3 – F2 ≤ B2 – Si i < j, Mi ≤ Mj, Bi ≤ Bi, Fi ≤ Fj
  • 16. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 16 Exemple 2 – coopération Autre expression distribuée, autre expression de synchronisation • Exercice : trouver une autre décomposition du même exemple et donner l’expression de synchronisation associée • Cf. annexe 1
  • 17. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 17 Exemple 3 – compétition Présentation de l’exemple • Deux aides comptables (AC1 et AC2) dans une entreprise – Etablissent les factures – Gèrent les comptes clients • Un client X effectue deux commandes C1 et C2 • Sans concertation, les deux comptables doivent prendre en charge ces commandes
  • 18. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 18 Exemple 3 – compétition Présentation de l’exemple • Exemple de traitement sans contrôle particulier • A la fin, la valeur du compte de X est incrémentée de C1 au lieu de C1+C2
  • 19. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 19 Exemple 3 – compétition Concept d’exclusion mutuelle • Explication : AC1 et AC2 entrent en compétition pour l’accès à une ressource : le compte client dont l’usage en mise à jour est critique  ressource critique • Lorsqu’un processus accède à une ressource critique, on dit qu’il est en section critique • Toutes les sections critiques d’un ensemble de processus d’un même système doivent s’exclure mutuellement  exclusion mutuelle
  • 20. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 20 Exemple 3 – compétition Concept d’exclusion mutuelle • Un protocole doit être défini de manière à garantir cette exclusion. – Protocole d’acquisition de la ressource critique – Section critique – Protocole de libération de la ressource critique  protocole d’exclusion mutuelle • Si un processus P entame sa phase d’acquisition alors que la ressources critique est utilisée par un autre processus P’, il devra attendre (ie. rester dans la phase d’acquisition) jusqu’à ce que le processus P’ ait terminé son protocole de libération
  • 21. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 21 Exemple 3 – compétition Propriétés des protocoles d’exclusion mutuelle • Situations à éviter – Interblocage : il existe au moins un processus qui désire accéder à la section critique et aucun processus ne peut l’atteindre – Famine : le protocole d’exclusion mutuelle ne garanti pas que tout processus désirant accéder à une ressource peut le faire en un temps fini • Propriétés (souhaitables) des protocoles d’exclusion mutuelle – Exclusion : A tout instant, un processus au plus se trouve en section critique pour une ressource donnée – Equité (ou vivacité) : non famine. Tout processus demandant la section critique l’atteint en un temps fini. L’équité entraîne le non interblocage – Indépendant du fonctionnement applicatif des processus – Identique à tous les processus Remarque : il est parfois souhaitable de ne pas exclure une possibilité de famine (processus prioritaires)
  • 22. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 22 Exemple 3 – compétition Exclusion mutuelle et ordonnancement • Différents ordres possibles de passage en section critique (s’il n’y a pas famine) – FIFO (les processus accèdent à la section critique dans l’ordre où ils l’ont demandée) – Attente linéaire : tout processus demandeur peut se faire doubler une au plus une fois par chaque processus – Attente bornée : pour un protocole donné, il existe une fonction f(n) où n est le nombre de sites, telle qu’un processus donné se fasse doubler par au plus f(n) processus
  • 23. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 23 Notions à retenir • Processus • Ressource • Evènement • Coopération à la réalisation d’une tâche – Ordonnancement des évènements – Expression de synchronisation • Compétition entre plusieurs processus pour l’accès à une ou plusieurs ressources partagées – Ressource critique – Section critique – Exclusion mutuelle – Interblocage – Famine
  • 24. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 24 Chapitre 2 CSP Conventions d’écriture : tutoriel Exemples simples
  • 25. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 25 CSP Présentation • Langage formel permettant de modéliser l’interaction de systèmes distribués • Permet l'implémentation rapide des paradigmes classiques de la concurrence • Ce n'est pas un langage de programmation complet, mais il a été mis en pratique industriellement comme un outil de spécification formelle de l'exécution concurrente de systèmes • CSP a été décrit par Sir Charles Antony Richard Hoare (Quicksort, logique de Hoare, langage formel CSP, langage de programmation Occam, système de synchronisation « moniteur ») • Champ de recherche toujours actif
  • 26. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 26 CSP Présentation • Modélisation des systèmes distribués = « programmation concurrente » – Concurrence disjointe : les entités concurrentes ne communiquent et n'interagissent pas. – Concurrence compétitive : un ensemble d'entités concurrentes en compétition pour l'accès à certaines ressources partagées (par exemple le temps CPU, un port d'entrées/sorties, une zone mémoire). – Concurrence coopérative : un ensemble d'entités concurrentes qui coopèrent pour atteindre un objectif commun. Des échanges ont lieu entre les processus.
  • 27. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 27 CSP Structure d’un programme • Suite de commandes et de déclarations de variables séparées par des « ; » Exemple x : integer ; y : integer ; x := 4 ; • Deux types de commandes – Simples • commande nulle (skip) • commande d'affectation • commande d'entrée/sortie – Structurées • commande parallèle • commande répétitive • commande alternative
  • 28. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 28 CSP Eléments spécifiques • Processus – Syntaxe processus :: liste_de_commandes • Tableaux de processus (extension CSP) – Syntaxe : P[i][i:1..n] :: liste_de_commandes
  • 29. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 29 CSP Eléments spécifiques • Signal – Variable complexe • 1 constructeur = identifiant libre • 1 ensemble de valeurs (entiers, chaîne de caractères, autres signaux…) – Syntaxe constructeur (valeur1 ; … ; valeurN) – Exemple : p(3,5) • Constructeur : p • Valeurs : 3 et 5 • Signal « pur » – p() est un « signal pur », ie. ne contient pas de valeurs
  • 30. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 30 CSP Commande nulle • Commande nulle – Ne fait rien, permet juste de combler un bloc d’instruction vide – Syntaxe : skip Exemple consommateur[1]!nb -> skip ;
  • 31. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 31 CSP Commande d’affectation • Commande d’affectation – Permet d’affecter une valeur à une variable – Syntaxe : variable := valeur Exemple message : string := ""; nb : integer := 0 ; nb := nb + 1 ; x := p(4) ;
  • 32. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 32 CSP Commande parallèle • Commande parallèle – Permet la mise en concurrence de processus – Syntaxe : [ proc1 :: liste de commandes || proc2 :: liste de commandes || … ] – La commande se termine lorsque tous les processus qu’elle définit sont terminés – L’échec d’un processus entraîne l’échec de la commande – Une variable définie avant une commande parallèle est visible des tous les processus qu’elle contient  partage de ressources dont les contraintes (accès exclusif etc.) sont à la charge du programmeur
  • 33. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 33 CSP Commandes d’entrée/sortie • Commandes d’entrée/sortie – Permet la communication entre processus – Syntaxe commande d’entrée : processus_source ? variable_cible (communication synchrone) processus_source ?? variable_cible (communication asynchrone) – Syntaxe commande de sortie : processus_cible ! variable_source (communication synchrone) processus_cible !! variable_source (communication asynchrone) • Sonde booléenne – Permet d’établir la possibilité de communication avec un processus – Prend la valeur « vraie » sur le processus en question est bloqué en attente de communication – Syntaxe !?processus
  • 34. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 34 CSP Commande d’entrée/sortie • Cas particulier de la communication synchrone – La communication synchrone est possible si : • Il y a une commande d’entrée et une commande sortie • Les deux processus se nomment mutuellement • La variable cible et la variable source sont de même type – Sinon, les processus sont mis en attente  interblocage – Le premier processus demandant la communication est mis en attente jusqu’à ce que le second le rejoigne Principe du rendez-vous • Si un des processus est mort, toute commande d’entrée sortie impliquant se processus échoue
  • 35. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 35 CSP Commande d’entrée/sortie • Exemple : • Cas particulier : synchronisation sans transmission de variable Cas particulier d’une synchronisation sans transmission de valeur (utilisation d’un signal pur) [ Producteur :: Consommateur ! p() ; || Consommateur :: Producteur ? p() ; ] Le processus producteur transmet une variable x au processus consommateur [ Producteur :: Consommateur ! x ; || Consommateur :: Producteur ? x ; ]
  • 36. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 36 CSP Commande alternative • Commande alternative = ensemble de commandes sélectives • Commande sélective – Permet de modéliser une liste de commandes à exécuter si certaines conditions (la « garde ») sont remplies – Commande sélective = une garde + une liste de commande – Schéma : condition  action – Syntaxe garde  liste de commandes • Garde – Une garde = (une ou plusieurs expression booléenne) et/ou (une commande d’entrée) (l’une ou l’autre peut être omise) – Syntaxe expression_booléenne ; commande_entrée Ici, « ; » = opérateur de conjonction
  • 37. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 37 CSP Commande alternative • Evaluation d’une garde – Trois valeurs possibles (logique trivaluée) : vraie, fausse ou neutre – Expression booléenne : vraie ou fausse – Commande d’entrée • Vrai si la communication est possible immédiatement • Neutre si le processus nommé par la commande n’est pas encore prêt • Faux si le processus nommé par la commande est « mort » (ie. a fini son exécution)
  • 38. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 38 CSP Commande alternative • Evaluation d’une garde – Evaluation d’une garde comprenant une expression booléenne ET une commande d’entrée
  • 39. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 39 CSP Commande alternative • Commande alternative – Ensemble de commandes sélectives (ou « gardées ») – Syntaxe [ garde1  liste de commandes [] garde2  liste de commandes [] … ] – Si une ou plusieurs gardes sont vraies, sélection aléatoire d’une des gardes – Si aucune garde n’est vraie, mais que certaines sont neutres, mise en attente des gardes neutres – Si toutes les gardes sont fausses, la commande alternative échoue – Si une garde est sélectionnée, la liste de commandes correspondantes est exécutée
  • 40. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 40 CSP Commande alternative • Remarque : seules les commandes d’entrées sont autorisées dans les gardes afin d’éviter les incohérences Exemple autorisant les commandes de sorties dans les gardes [ Proc1 :: [ proc2 ? p()  … [] proc2 ? q()  … ] || Proc2 :: [ proc1 ! p()  … [] proc1 ! q()  … ] ] Proc1 et Proc2 arrivent simultanément sur leur commande alternative Toutes les gardes sont potentiellement vraies. Si c’est le cas, Proc1 en choisi aléatoirement une et Proc2 fait de même Si Proc1 et Proc2 choisissent la même communication : pas de problème Sinon  interblocage
  • 41. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 41 CSP Commande répétitive • Commande répétitive – Permet de répéter une même commande alternative tant qu’au moins une des gardes est évaluée à vrai – Syntaxe * commande alternative Exemple i := 0 ; * [ i < 10  i := i+1 ] Ici la commande répétitive se terminera lorsque i aura atteint la valeur 10
  • 42. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 42 CSP Définition de processus • Définition de processus – Permet de définir un processus à l’extérieur d’une commande parallèle ou alternative (afin de clarifier le code) – Syntaxe PROCESSUS == liste d’instructions Exemple PRODUCTEUR == … CONSOMMATEUR == … MAIN == [ producteur :: PRODUCTEUR || consommateur :: CONSOMMATEUR ] La liste d’instructions MAIN est alors cette exécutée au lancement du programme
  • 43. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 43 CSP Autres commandes et conventions d’écriture • Autres commandes – Affichage : print (message) – Aléatoire : x := random (debut, fin) – Mise en attente : sleep (tps) • Définition de constantes : define CONSTANTE valeur • Commentaires : -- commentaires
  • 44. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 44 CSP Exercices • Cf. annexe 2 Exercice 1 Ecrire le processus p cherchant dans un tableau t de 100 éléments (indicés de 1 à 100) la place du « 0 » de plus petit indice Exercice 2 Ecrire le processus X qui reçoit des caractères d’un processus « gauche » et les transmet, à l’exception des blancs, au processus « droite » (réception synchrone, émission asynchrone) Exercice 3 A et B envoient des entiers à C qui les cumule par « paquets ». Dès qu’un paquet est ≥ 1000, C envoi la somme correspondante à D Ecrire le processus C A B C D entier entier Ʃ
  • 45. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 45 Chapitre 3 1 producteur / 1 consommateur Présentation de l’exemple Expression des conditions de production et de consommation Mise en œuvre distribuée Notion de prédicat régulier Algorithme
  • 46. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 46 1 producteur / 1 consommateur Présentation de l’exemple • 2 processus : – « producteur » – « consommateur » • Deux opérations : – « produire », opération du processus « producteur » – « consommer », opération du processus « consommateur » • Le producteur produit des message à destination du consommateur qui les consomme
  • 47. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 47 1 producteur / 1 consommateur Présentation de l’exemple • Invariant du système (I1) : il existe au plus n messages produits et non consommés • Invariant représenté par un tampon (= un tableau) pouvant contenir n informations est partagé par les deux processus • L’opération « produire » n’est permise que si le tampon contient au moins une case libre (vide) • L’opération « consommer » n’est permise que si le tampon contient au moins une case pleine (non vide)
  • 48. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 48 1 producteur / 1 consommateur Expression des conditions de production et de consommation • 4 compteurs monotones croissants – DEBPROD : nombre de productions commencées (ie. nombre de débuts d’exécution de « produire ») – FINPROD : nombre de productions terminées – DEBCONS : nombre de consommations commencées – FINCONS : nombre de consommations terminées • Il est nécessaire de compter séparément des débuts et fin d’opérations « produire » et « consommer » car elle ont une durée d’exécution non nulle.
  • 49. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 49 1 producteur / 1 consommateur Expression des conditions de production et de consommation • A tout instant, il y a plus de production commencées qu’il y en a de terminées. Idem pour les consommations. On a donc : – FINPROD ≤ DEBPROD – FINCONS ≤ DEBCONS • « condition de production » = il y a au moins une case libre Cp : (Cp) DEBPROD - FINCONS < n • « condition de consommation » = il y a au moins une case pleine Cc : (Cc) DEBCONS - FINPROD < 0 • Nouvelle expression de l’invariant du système (I2) : l’opération « produire » peut s’exécuter si et seulement si Cp est vrai, l’opération « consommer » peut s’exécuter si et seulement si Cc est vrai
  • 50. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 50 1 producteur / 1 consommateur Mise en œuvre distribuée • 1 site de production (Sp), hébergeant le processus « producteur » • 1 site de consommation (Sc), hébergeant le processus « consommateur » • Connectés entre eux par un réseau • Compteurs modifiés par le « producteur » = variables du site (Sp) • Compteurs modifiés par le « consommateur » = variables du site (Sc)
  • 51. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 51 • MAIS, le producteur doit pouvoir évaluer la condition de production Cp et le consommateur doit pouvoir évaluer la condition de consommation Cc • DONC, l’évaluation des conditions Cp et Cc implique la lecture de variables se trouvant sur l’autre site • Rappel : « condition de production » Cp : (Cp) DEBPROD - FINCONS < n « condition de consommation » Cc : (Cc) DEBCONS - FINPROD < 0 1 producteur / 1 consommateur Mise en œuvre distribuée
  • 52. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 52 • Conséquences L’évaluation de Cp par le site producteur nécessite un échange de message avec le site consommateur afin d’obtenir la valeur de FINCONS L’évaluation de Cc par le site consommateur nécessite un échange de message avec le site producteur afin d’obtenir la valeur de FINPROD A cause des délais de transmission, le producteur ne peut connaître à un instant donné la valeur exacte de FINCONS. Il doit se contenter d’une copie de la valeur, éventuellement en retard sur la laveur exacte. Idem pour le consommateur avec FINPROD. 1 producteur / 1 consommateur Mise en œuvre distribuée
  • 53. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 53 • Idée – Disposer chez le producteur d’une copie de FINCONS : IFINCONS – Disposer chez le consommateur d’une copie de FINPROD : IFINPROD • IFINCONS est une image retardée de FINCONS • IFINPROD est une image retardée de FINPROD • Hypothèse : l’échange de messages entre Sp et Sc se fait sans déséquencement • On a donc à tout instant : IFINCONS ≤ FINCONS et IFINPROD ≤ FINPROD 1 producteur / 1 consommateur Mise en œuvre distribuée
  • 54. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 54 • Exercice – Cp’ = nouvelle version de la condition de production exprimée avec les variables locales au site de production – Cc’ = nouvelle version de la condition de consommation exprimée avec les variables locales au site de consommation – Exprimer Cp’ et Cc’ – Montrer que Cp’ Cp⇒ – Montrer que Cc’ Cc⇒ • Cf. annexe 3 1 producteur / 1 consommateur Mise en œuvre distribuée
  • 55. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 55 1 producteur / 1 consommateur Notion de prédicat régulier • Définition : prédicat régulier Soit le prédicat (E) : ∑i αi Ci ≥ K où αi > 0 ou αi < 0 Ci : compteurs monotones croissants K : constante entier relatif Le prédicat (E) est dit régulier par rapport à un compteur Ci si son coefficient αi est positif • Théorème Si (P) est un prédicat de synchronisation et s’il est régulier par rapport à un compteur Ci , alors on peut (sans danger) utiliser une version retardée de Ci
  • 56. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 56 1 producteur / 1 consommateur Notion de prédicat régulier • Dans notre exemple : • Avantages : test de 2 variables locales désynchronisation entre évaluation du prédicat et communication de de la valeur des compteurs • Inconvénients : ralentit la production (Cp peut autoriser la production alors que Cp’ l’interdit) (Cp) : DEBPROD – FINCONS < n FINCONS – DEBPROD > n Le coefficient de FINCONS est 1, donc (Cp) est régulier par rapport à FINCONS L’utilisation de IFINCONS (≤FINCONS) est donc valide (ie. si Cp autorise à produire, alors Cp’ aussi) (Cc) : DEBCONS – FINPROD < 0 FINPROD – DEBCONS > 0 Le coefficient de FINPROD est 1, donc (Cc) est régulier par rapport à FINPROD L’utilisation de IFINPROD (≤FINPROD) est donc valide (ie. si Cc autorise à consommer, alors Cc’ aussi)
  • 57. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 57 1 producteur / 1 consommateur Architecture • Recommandation : séparer le processus « applicatif » du processus « contrôleur » • Le tableau « tampon » peut être implémenté indifféremment sur l’un ou l’autre des deux sites, ou sur un troisième. Ici, sur le site de consommation.
  • 58. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 58 1 producteur et 1 consommateur Algorithmes • Cf. Annexe 4
  • 59. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 59 Chapitre 6 N producteurs / 1 consommateur Présentation de l’exemple Exclusion mutuelle par jeton circulant Algorithme
  • 60. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 60 N producteurs / 1 consommateur Présentation de l’exemple • m producteurs : P1, P2, … Pm • 1 consommateur : C • 1 tampon à n cases
  • 61. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 61 N producteurs / 1 consommateur Présentation de l’exemple • DEBPROD et FINPROD : début et fin d’une production, une seule production à la fois. Ces variables doivent être partagées par l’ensemble des producteurs.  ressources critique • Idem pour IFINCONS nécessaire à l’évaluation de la condition de production • Besoin d’un protocole d’exclusion mutuelle pour l’accès à ces variables, assurant entre autre : – L’équité : un site demandant l’accès à une ressource doit l’obtenir au bout d’un temps fini – La vivacité : absence d’interblocage • 3 propositions de mise en œuvre – Technique du jeton circulant – Technique des distributions par duplication – Technique des distributions par éclatement
  • 62. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 62 N producteurs / 1 consommateur Technique du jeton circulant - présentation • L’ensemble des sites sont sur un anneau unidirectionnel • Hypothèse : le positionnement des processus sur l’anneau est statique • Principe : le jeton est un message circulant sur l’anneau dont la possession donne le droit d’entrer en section critique (ie. d’accéder à DEBPROD, FINPROD et IFINCONS, et donc de produire) • Dans le jeton, on place DEBPROD et IFINCONS (pour l’évaluation de la condition de production)
  • 63. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 63 N producteurs / 1 consommateur Technique du jeton circulant – première solution non équitable • Quand un processus Pi (i = 1..m) reçoit le jeton, on distingue deux possibilités – Pi ne veut pas produire  envoi du jeton au successeur Pi+1 – Pi veut produire  Evaluation de la condition de production Si condition ok : production modification de DEBPROD envoi du jeton au successeur Sinon, envoi du jeton au successeur • Quand C reçoit le jeton, il consomme un message s’il y en a au moins un dans le tampon
  • 64. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 64 N producteurs / 1 consommateur Technique du jeton circulant – première solution non équitable • Constatation : les m-n derniers processus peuvent être en situation de famine si les n premiers veulent tous produire quand le jeton passe
  • 65. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 65 N producteurs / 1 consommateur Technique du jeton circulant – deuxième solution équitable • Idée : quand un processus Pi a le jeton et veut produire, il prend son rang dans une file des requêtes de production. Il produit alors à deux conditions – Il reste de la place dans le tampon – Il n’occupe pas la place d’une requête plus prioritaire (ie. plus ancienne) • Hypothèse : chaque producteur ne peut avoir au plus qu’une requête de production en attente • Nouvelle variable : COMPTEREQ Compteur monotone croissant représentant le nombre de requêtes de production, partagé en lecture et écrite par l’ensemble des processus • L’info véhiculée par le jeton devient : – DEBPROD – IFINCONS – COMPTEREQ
  • 66. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 66 N producteurs / 1 consommateur Technique du jeton circulant – deuxième solution équitable • Fonctionnement : quand Pi reçoit le jeton – S’il ne veut pas produire, il transmet le jeton à son successeur – S’il veut produire si n’a pas encore de requête en attente il « prend son rang » : COMPTEREQ := COMPTEREQ + 1 Rang_i := COMPTEREQ s’il a déjà une requête en attente, COMPTEREQ et Rang_i ne sont pas modifiés Pi va produire s’il a un « comportement équitable » et si la condition de production est vérifiée (Cp’) DEBPROD – IFINCONS < n
  • 67. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 67 N producteurs / 1 consommateur Technique du jeton circulant – deuxième solution équitable • Comportement équitable nb de places libres (perçues par Pi) > nb de requêtes plus prioritaires (anciennes) que celle de Pi n - (DEBPROD – IFINCONS) > COMPTEREQ – 1 – DEBPROD n – DEBPROD + IFINCONS > Rang_i – 1 – DEBPROD n + IFINCONS > Rang_i – 1 (Cp’’) Rang_i – IFINCONS ≤ n • Cp’’ Cp’⇒ (Cp’’) Rang_i – IFINCONS ≤ n Avant que le processus ne produise Rang_i > DEBPROD DEBPROS – IFINCONS < Rang_i – IFINCONS ≤ n (Cp’) DEBPROD – IFINCONS < n
  • 68. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 68 N producteurs / 1 consommateur Technique du jeton circulant – deuxième solution équitable • Exercice : simuler deux tours de jetons en considérant que tous les producteurs veulent toujours produire • Cf. annexe 5
  • 69. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 69 N producteurs / 1 consommateur Technique du jeton circulant – algorithme • Cf. annexe 6
  • 70. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 70 N producteurs / 1 consommateur Technique de distribution par duplication – présentation • Retour au problème initial : – m producteurs : P1, P2, … Pm – 1 consommateur : C – 1 tampon à n cases • Idée : au lieu de transporter le compteur DEBPROD au moyen d’un jeton, cette variable peut être dupliquée sur chaque site de production Pi.
  • 71. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 71 N producteurs / 1 consommateur Technique de distribution par duplication – présentation • Pour cela, il faut assurer deux types de cohérence vis-à-vis de DEBPROD : 1. Cohérence en lecture : en l’absence de message en transit dans le réseau, toutes les copies de DEBPROD doivent avoir la même valeur 2. Cohérence en écriture : toute modification de DEBPROD doit être réalisée en Exclusion Mutuelle (EM)
  • 72. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 72 N producteurs / 1 consommateur Technique de distribution par duplication – présentation • Solutions 1. Tout site modifiant DEBPROD envoie une copie à l‘ensemble des autres sites 2. En solution centralisée : les requêtes d’accès à DEBPROD sont placées dans une file d’attente qui matérialise le fait que l’horloge unique du système permet de prendre en compte la priorité (ie. est capable d’ordonnancer les requêtes) En solution répartie : Simuler une horloge commune = chaque site gère une horloge logique locale. Tout envoi de message se fait en estampillant (datant) le message avec la valeur de l’horloge locale. Horloge logique – assure une cohérence relative de l’horloge entre tous les systèmes qui interagissent – beaucoup plus facile à mettre en œuvre que la synchronisation absolue de l’horloge – permet de mettre en accord les processus sur l’ordre des évènements
  • 73. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 73 N producteurs / 1 consommateur Technique de distribution par duplication – hypothèses • Solutions choisie : algorithme de Lamport – Estampillage des messages – Gestion d’une file d’attente distribuée • Hypothèses – H1 : tout site peut communiquer directement avec tout autre site (maillage complet) – H2 : pas de perte de messages (délais d’acheminement finis)
  • 74. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 74 N producteurs / 1 consommateur Technique de distribution par duplication – hypothèses • Hypothèses (suite) – H3 : non-déséquencement des messages (l’ordre de réception sur un site Sj d’une suite de messages provenant d’un même site Si est identique à l’ordre d’émission) – H4 : la panne ou l’isolement d’un site est détecté et signalé aux sites qui tentent de communiquer avec lui
  • 75. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 75 N producteurs / 1 consommateur Technique de distribution par duplication – notions de base • Evènement = instruction exécutée par un processeur – Envoi de message – Réception de message – Changement d’état local
  • 76. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 76 N producteurs / 1 consommateur Technique de distribution par duplication – notions de base • Précédence causale – Définition d’une relation de précédence entre les évènements d’un système réparti : si a et b sont deux évènements, on dit que a précède b si d’une des conditions suivantes est satisfaite : • a et b sont générés sur le même si et a est antérieur à b • a est l’envoi d’un message depuis un site et b la réception de ce même message sur un autre site – On note alors a  b la relation « a précède b » – Si a  b et b  c alors a  c – On parle de « précédence causale » car un évènement a ne peut avoir influencé un évènement b que si a  b a « cause » b a⇒  b (la réciproque n’est pas –forcément– vraie )
  • 77. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 77 N producteurs / 1 consommateur Technique de distribution par duplication – notions de base • Passé (historique) d’un évènement – hist(e) = e U ensemble des évènements e’ tels que e’  e – Seul le passé de e peut avoir influencé e – hist(e24) = {e24, e23, e22, e21, e11, e31} – On ne peut rien dire sur e24 et e32
  • 78. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 78 N producteurs / 1 consommateur Technique de distribution par duplication – notions de base • Chaine causale – Ensemble des e0 … en tels que i [1..n], e∀ ∈ i-1  ei • Concurrence (ou indépendance causale) a || b ¬ (a⇔  b) et ¬ (b  a) ⇔ a hist(b) et b hist(a)∉ ∉
  • 79. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 79 N producteurs / 1 consommateur Technique de distribution par duplication – estampillage • La technique des estampilles permet de définir un ordre partiel ou global en effectuant une datation des évènements • Horloge de lamport – Chaque site Si gère une horloge logique hi (variable entière initialisée à 0) – Lorsqu’un évènement a se produit sur Si • hi := hi + 1 • La date de a, notée h(a) prend comme valeur hi – Lors de l’émission d’un message m par le site Si • hi := hi + 1 • Le message m est estampillé par (hi, i) et devient donc (m, hi, i) hi est alors la date d’émission du message – Lors de la réception d’un message (m, hi, i) par Sj • hj := hj + 1 • hj = (max(hi, hj) + 1)
  • 80. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 80 N producteurs / 1 consommateur Technique de distribution par duplication – estampillage
  • 81. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 81 N producteurs / 1 consommateur Technique de distribution par duplication – estampillage • Ordre partiel – Les dates des évènements permettent d’établir un ordre partiel entre l’ensemble des évènements constitués par les envois et les réceptions de messages – Si a  b, alors la date de a est inférieure à la date de b – Partiel : plusieurs évènements peuvent être affectés à la même date • Ordre total strict (noté <) – Un site peut recevoir plusieurs messages avec la même date d’émission – S’il doit établir un ordre total strict, on convient que entre deux messages qui ont la même date d’émission, c’est celui qui provient du site de plus petit numéro qui est antérieur à l’autre – Si a et b sont deux avènements ayant lieu sur les sites i et j (a<b) h(a)<h(b) ou (h(a)=h(b) et i<j)⇔
  • 82. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 82 N producteurs / 1 consommateur Technique de distribution par duplication – file d’attente partagée • Le système gère une file d’attente dont une copie est disponible sur chaque site • Chaque message demandant l’accès à la Section Critique (SC) ou informant de la libération de la SC sera diffusé à tous les sites • Chaque site héberge un tableau de deux colonnes et d’autant de lignes qu’il y a de processus
  • 83. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 83 N producteurs / 1 consommateur Technique de distribution par duplication – file d’attente partagée • Trois types de messages – Requête (Req) : message diffusé par un gestionnaire désirant entrer en SC (ie. obtenir l’EM), vers tous les autres gestionnaires – Libération (Rel) : message diffusé par un gestionnaire qui vient de recevoir du processus auquel il est associé une information de restitution de la ressource critique, vers tous les autres gestionnaires – Acquittement (Ack) : accusé de réception envoyé par un gestionnaire à un autre gestionnaire dont il vient de recevoir un message de type requête • Structure d’un message – Type_message (date_évènement, n°_site_émetteur)
  • 84. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 84 N producteurs / 1 consommateur Technique de distribution par duplication – file d’attente partagée • Chaque site possède un tableau TAB[1..m](où m est le nombre de sites) dans lequel le producteur Pi inscrit à l’indice j – (Req, h) lorsqu’il reçoit un message de type requête estampillé (h, j) – (Rel, h) lorsqu’il reçoit un message de type libération estampillé (h, j) – (Ack, h) lorsqu’il reçoit un message de type acquittement estampillé par (h, j), mais ceci uniquement dans le cas où ce qui serait effacé ne correspond pas à un message de type requête. Sinon le message d’acquittement est ignoré – Pi range également dans TAB[i] les informations correspondant aux messages qu’il envoie, dans les mêmes conditions que ci-dessus
  • 85. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 85 N producteurs / 1 consommateur Technique de distribution par duplication – file d’attente partagée • Pi veut entrer en section critique – Pi diffuse Req(hi, i) à tous les aures sites – TAB[i] := (Req, hi) • Pi quitte la section critique – Pi diffuse Rel(hi, i) à tous les aures sites – TAB[i] := (Rel, hi) • Pi reçoit un message Req(hj, j) – Pi envoi Ack(hi, i) à Pj – TAB[j] := (Req, hj) • Pi reçoit un message Rel(hj, j) – TAB[j] := (Rel, hj) • Pi reçoit un message Ack(hj, j) – Si TAB[j].type = Req  skip – Sinon TAB[j] := (Ack, hj)
  • 86. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 86 N producteurs / 1 consommateur Technique de distribution par duplication – file d’attente partagée • Un gestionnaire Pi qui désire obtenir la section critique pour le processus dont il gère le contrôle ne peut le faire que si TAB[i] est le message le plus ancien noté dans TAB selon la relation d’ordre définie par les estampilles, c’est-à-dire si j [1..m], j ≠ i∀ ∈ (TAB[i].date < TAB[j].date) ou (TAB[i].date = TAB[j].date et i < j ) Pi peut entrer en SC⇔ • Initialisation identique pour chaque site i [1..m] TAB[i] := (rel, 0)∀ ∈
  • 87. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 87 • A quel moment P1 et P2 entrent-ils en section critique ? • Cf. annexe 7 N producteurs / 1 consommateur Technique de distribution par duplication – exemples
  • 88. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 88 • Préciser les horloge logiques et estampiller les messages • A quel moment P1, P2 et P3 entrent-ils en section critique ? • Cf. annexe 7 N producteurs / 1 consommateur Technique de distribution par duplication – exemples
  • 89. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 89 N producteurs / 1 consommateur Technique de distribution par duplication – algorithme de Lamport • Cf. annexe 8
  • 90. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 90 N producteurs / 1 consommateur Technique de distribution par éclatement – présentation • Retour au problème initial : – m producteurs : P1, P2, … Pm – 1 consommateur : C – 1 tampon à n cases • L’algorithme de Lamport utilise des variables locales reliées par des contraintes globales • Idée : diminuer fortement les contraintes globales  on divise les places du tampon entre chaque producteur • Un quota = ni de places libres dans les tampon est alloué à chaque Pi • Il n’existe plus de compétition entre le Pi pour l’accès au tampon
  • 91. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 91 N producteurs / 1 consommateur Technique de distribution par éclatement – condition de production • La condition de production pour Pi s’écrit alors : (Cpi) DEBPRODi – IFINCONSi < ni • DEBPROBi : nombre de productions commencées par Pi • IFINCONSi : copie de FINCONSi, le nombre de consommations dans le quota alloué à Pi • Cpi Cp⇒
  • 92. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 92 Merci pour votre attention
  • 93. Algorithmique distribuée - ENSSAT - IMR2 - 2010-2011 93 Références • Noël Plouzeau, Michel Raynam, Jean-Pierre Verjus Producteurs / consommateur : quelques solutions réparties • C.A.R. Hoare Communicating Sequential Processes • Irène Charon Algorithmique du contrôle réparti • Références ENSSAT – Cours de Marc Guyomard – Cours de Allel Hadjali • http://fr.wikipedia.org/wiki/Communicating_sequential_processes • http://fr.wikipedia.org/wiki/Programmation_concurrente • http://fr.wikipedia.org/wiki/C._A._R._Hoare