![Page 1: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/1.jpg)
Algorithmique Distribuée
Stéphane Devismes
![Page 2: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/2.jpg)
Infos pra9ques
• Contact : [email protected]
• Web : www-‐verimag.imag.fr/~devismes/WWW/enseignements.html
• Contact promo : Ricm5-‐[email protected]
• Salles de Cours/TD/TP, voir planning sur ADE : ade6-‐ujf-‐ro.grenet.fr/direct/
2 Algorithmique Distribuée
![Page 3: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/3.jpg)
But • Algorithmes distribués :
– Spécifica9on – Concep9on – Preuve de correc9on et complexité – Implanta9on
• Dans le simulateur Sinalgo • Source (plug-‐in Java), Tutorial et supports disponibles sur ma page Web
• Problèmes considérés : briques de bases pour les réseaux – élec9on, circula9on de jeton, diffusion, etc.
• Intérêt et inconvénient : Indépendant de l’architecture matérielle
3 Algorithmique Distribuée
![Page 4: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/4.jpg)
Contenu
• 8 semaines, 26 heures • Alternance Cours-‐TD / TP • Suite du cours « Algorithmique Distribuée » de RICM4
• Aspect « tolérance aux fautes »
4 Algorithmique Distribuée
![Page 5: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/5.jpg)
Plan du cours
• Rappel « Algorithmique non tolérante aux fautes » – 2 heures
• Introduc9on à la tolérance aux fautes + bit alterné – 3 heures
• Consensus, impossibilité (FLP) et algorithmes – 10 heures
• Auto-‐stabilisa9on – 11 heures
5 Algorithmique Distribuée
![Page 6: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/6.jpg)
Evalua9on
• Examen • 2h • Fin décembre ? • Annales disponibles sur ma page Web
6 Algorithmique Distribuée
![Page 7: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/7.jpg)
Introduc9on
7 Algorithmique Distribuée
![Page 8: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/8.jpg)
Algorithmes distribués
8 Algorithmique Distribuée
![Page 9: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/9.jpg)
Algorithmes distribués
• Algorithmes pour des systèmes distribués J
• « En informa9que, un système distribué (aussi appelé système répar9) est un ensemble d ’un i t é s de t r a i t ement au tonomes interconnectées entre-‐elles. » – Gérard Tel, Introduc=on to distributed algorithms
9 Algorithmique Distribuée
![Page 10: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/10.jpg)
Algorithmes distribués
• Système distribué ≃ modélisa9on des réseaux – Internet – Le réseau de l’Université – Le réseau téléphonique (filaire, cellulaire) – GPS – Réseau de capteurs (surveillance sismique) – Threads sur une machine – ...
10 Algorithmique Distribuée
![Page 11: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/11.jpg)
Algorithmes distribués
• Unités de traitement = processus = processeurs = nœuds
11 Algorithmique Distribuée
![Page 12: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/12.jpg)
Algorithmes distribués • Autonome : – Chaque machine est pourvue de son propre contrôle • Programmes locaux • Mémoires locales
12 Algorithmique Distribuée
![Page 13: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/13.jpg)
Algorithmes distribués
• Autonome : – ≠ algorithmes parallèles : pas de synchronisa9on (logicielle ou matérielle) • Asynchrone • Pas de temps global
13 Algorithmique Distribuée
![Page 14: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/14.jpg)
Algorithmes distribués
• Interconnectées : échanges d’informa9ons
14 Algorithmique Distribuée
![Page 15: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/15.jpg)
Algorithmes distribués
• Interconnectées
15 Algorithmique Distribuée
![Page 16: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/16.jpg)
Algorithmes distribués
• Interconnectées : échanges d’informa9ons – via messages
16 Algorithmique Distribuée
![Page 17: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/17.jpg)
Algorithmes distribués • Interconnectées : échanges d’informa9ons – Couches de communica9on (Modèle OSI)
17
Applica>on Présenta>on
Session Transport Réseau MAC
Physique Envoi d’un seul bit d’informa9on point à point
Envoi d’une trame de bits (message) point à point
Protocoles réseaux : Algorithmes distribués
Deux fonc9ons : -‐ Envoyer(M,v) -‐ Recevoir(M,v)
U9lisateur final
Algorithmique Distribuée
![Page 18: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/18.jpg)
Centralisé vs. Distribué
18 Algorithmique Distribuée
![Page 19: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/19.jpg)
Centralisé vs. Distribué • Absence de connaissance globale – Pas d’accès à l’état global du système – Décisions basées la mémoire locale du nœud
• Mise à jour en fonc9on des échanges d’informa9ons • Problème de pérennité des informa9ons (système asynchrone)
19
Racine= faux
Algorithmique Distribuée
![Page 20: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/20.jpg)
Centralisé vs. Distribué
• Absence de temps global: – Temps d’exécu9on des nœuds ≠ – Communica9ons asynchrones – Horloges locales ≠ (valeurs ini9ales ≠ + dérive) – Conséquence : contrairement aux systèmes centralisés, l’ordre (observable par les processus) entre les ac9ons des processus n’est que par9el : l’ordre de causalité • (Lamport 1978)
20 Algorithmique Distribuée
![Page 21: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/21.jpg)
Causalité : exemple
21 Algorithmique Distribuée
• L’événement « p envoie m » arrive avant l’événement « q reçoie m »
p
q
m
![Page 22: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/22.jpg)
Causalité : exemple
22 Algorithmique Distribuée
• L’événement « p envoie m » arrive avant l’événement « p effectue le calcul interne c »
p
q
m
c
![Page 23: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/23.jpg)
Causalité : exemple
23 Algorithmique Distribuée
• Les événements « p envoie m » et « q envoie m’ » sont indépendants
p
q
m m’
![Page 24: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/24.jpg)
Centralisé vs. Distribué
• Non-‐déterminisme – Algorithme déterministe séquen9el : sor9es fonc9on des entrées
– Algorithme déterministe distribué : pour les mêmes entrées, plusieurs résultats peuvent être possible
24 Algorithmique Distribuée
![Page 25: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/25.jpg)
Exemple
1 2
Sor9e = premier message reçu – deuxième message reçu Résultat ?
25 Algorithmique Distribuée
![Page 26: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/26.jpg)
Caractéris9ques d’un système distribué
• Sa topologie • Ses liens de communica9ons • Ses processus • Le temps • Les connaissances ini9ales des processus sur le système
Algorithmique Distribuée 26
![Page 27: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/27.jpg)
Caractéris9ques d’un système distribué : sa topologie
27 Algorithmique Distribuée
![Page 28: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/28.jpg)
Caractéris9ques
• Topologie = réseaux d’interconnexion • Topologies ≈ Graphe (simple) G=(V,E) – 2 processus qui peuvent communiquer directement = voisin
– Communica9ons : • bidirec9onnelles (ex., réseaux filaires) ou • unidirec9onnelles (ex., réseaux à fibres op9ques)
– Généralement on supposera des communica9ons bidirec9onnelles et une topologie connexe
28 Algorithmique Distribuée
![Page 29: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/29.jpg)
Les systèmes distribués
• Hypothèses – Liens bidirec9onnels
Algorithmique Distribuée 29
![Page 30: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/30.jpg)
Liens bidirec9onnels : pas toujours !
Algorithmique Distribuée 30
![Page 31: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/31.jpg)
Rappel : Connexité
Connexe !
Algorithmique Distribuée 31
![Page 32: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/32.jpg)
Rappel : Connexité
Pas connexe !
Algorithmique Distribuée 32
![Page 33: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/33.jpg)
Exemples de topologies
anneau arbre étoile clique
33 Algorithmique Distribuée
![Page 34: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/34.jpg)
Caractéris9ques d’un système distribué : liens de communica9ons
34 Algorithmique Distribuée
![Page 35: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/35.jpg)
Communica9ons
• Par message (modèle à passage de messages) – Fiabilité du canal
• (fiable ou avec perte équitable ou taux de livraison ou dynamique) • Fiable = pas de perte, duplica9on, créa9on
– Ordre d’arrivée des messages • (FIFO ou non)
– Capacité des canaux • (borné ou pas, borne connue ou pas)
– Temps d’acheminement (toujours fini) • (synchrone, asynchrone, finalement synchrone) • (pour les deux derniers, borne connue ou pas)
– Temps de traitement (supposé) négligeable
35 Algorithmique Distribuée
![Page 36: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/36.jpg)
FIFO : Rappel
Algorithmique Distribuée 36
![Page 37: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/37.jpg)
FIFO : Rappel
Algorithmique Distribuée
A
37
![Page 38: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/38.jpg)
FIFO : Rappel
Algorithmique Distribuée
B A
38
![Page 39: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/39.jpg)
FIFO : Rappel
Algorithmique Distribuée
C B A
39
![Page 40: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/40.jpg)
FIFO : Rappel
Algorithmique Distribuée
A C B
40
![Page 41: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/41.jpg)
FIFO : Rappel
Algorithmique Distribuée
B C
41
![Page 42: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/42.jpg)
FIFO : Rappel
Algorithmique Distribuée
C
42
![Page 43: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/43.jpg)
Temps d’acheminement
1. Un canal est synchrone s’il existe une constante c telle que pour tout temps t, si un message est émis au temps t alors il est reçu avant le temps t + c ou perdu.
2. Un canal est finalement synchrone s’il existe un temps t et une constante c telle que pour tout temps t’ ≥ t, si un message est émis au temps t’ alors il est reçu avant le temps t’ + c ou perdu.
3. Un canal est asynchrone s’il n’existe pas de temps t et de constante c telle que pour tout temps t’ ≥ t, si un message est émis au temps t’ alors il est reçu avant le temps t’ + c ou perdu.
43 Algorithmique Distribuée
![Page 44: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/44.jpg)
Caractéris9ques d’un système distribué : les processus
44 Algorithmique Distribuée
![Page 45: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/45.jpg)
Caractéris9ques
• Processus – Ini=ateur (démarrage « spontané ») ou non-‐ini=ateur (aussi appelé suiveur, démarrage suite à une communica9on avec un voisin)
– Sujet ou pas aux pannes ? (et quel type ?) – Asynchrone (équitable), synchrone ou finalement synchrone
– Mémoire locale de taille bornée ou non ?
45 Algorithmique Distribuée
![Page 46: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/46.jpg)
Caractéris9ques d’un système distribué : le temps
46 Algorithmique Distribuée
![Page 47: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/47.jpg)
Caractéris9ques
• Temps (global) – Discret : temps 0, 1, 2 … – Non accessible aux processus mais u9lisé dans les preuves
– Cependant, on u9lisera parfois du temps local (minuteurs)
47 Algorithmique Distribuée
![Page 48: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/48.jpg)
Caractéris9ques d’un système distribué : connaissances ini9ales des
processus
48 Algorithmique Distribuée
![Page 49: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/49.jpg)
Caractéris9ques • Connaissances ini>ales (entrées) des processus – Propriétés globales :
• Topologique : – Topologie, e.g., je sais que je suis dans un arbre – Borne supérieure ou exacte sur
» Le nombre de processus (n) » Le degré maximum (Δ) » Le diamètre du réseau (D)
• Dis9nc9on entre les processus – Anonyme – Iden9fié – Semi-‐anonyme
» Enraciné
49 Algorithmique Distribuée
![Page 50: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/50.jpg)
Réseaux iden9fiés : Rappel
• Iden9té unique (e.g., adresse IP)
Algorithmique Distribuée
12
4078
42
167
23 50
![Page 51: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/51.jpg)
Réseaux enracinés : Rappel
51 Algorithmique Distribuée
![Page 52: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/52.jpg)
Réseaux enracinés : Rappel
52
Racine= faux Racine= vrai
Racine= faux
Racine= faux Racine= faux
Algorithmique Distribuée
![Page 53: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/53.jpg)
Caractéris9ques
• Connaissances ini>ales des processus – Propriétés locales : connaissance sur le voisinage
• Degré local ? • Iden9té des voisins ? • Numéro de canaux (é9quetage local) ? • Rien ? (ex. réseaux sans fils)
53 Algorithmique Distribuée
![Page 54: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/54.jpg)
Numérota9on des canaux
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
4
4
54 Algorithmique Distribuée
![Page 55: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/55.jpg)
Exemple récapitula9f
55 Algorithmique Distribuée
![Page 56: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/56.jpg)
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
Algorithmique Distribuée 56
![Page 57: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/57.jpg)
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
Algorithmique Distribuée 57
![Page 58: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/58.jpg)
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
Algorithmique Distribuée 58
![Page 59: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/59.jpg)
• Entrées répar9es
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
Algorithmique Distribuée
Racine= faux Racine= vrai
Racine= faux
Racine= faux Racine= faux
59
![Page 60: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/60.jpg)
• Entrées répar9es • Calculs locaux – Mémoires locales – Programmes locals – Envoi de messages – Décision locale
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
Algorithmique Distribuée
Racine= faux
60
![Page 61: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/61.jpg)
• Entrées répar9es • Calculs locaux – Mémoires locales – Programmes locals – Envoi de messages – Decision locale
• Sor9es répar9es
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
Algorithmique Distribuée
Racine= faux Racine= vrai
Racine= faux
Racine= faux Racine= faux
61
![Page 62: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/62.jpg)
Algorithme Distribué Exemple : Calcul d’un arbre couvrant
• Entrées répar9es • Calculs locaux – Mémoires locales – Programmes locals – Envoi de messages – Decision locale
• Sor9es répar9es • Tâche globale
Algorithmique Distribuée
Racine= faux Racine= vrai
Racine= faux
Racine= faux Racine= faux
62
![Page 63: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/63.jpg)
Analyse de complexité
63 Algorithmique Distribuée
![Page 64: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/64.jpg)
Complexité
• Pire des cas, cas moyen, meilleur des cas
• Exact ou asympto9que (nota9on de Landau)
• Calcul interne négligeable
64 Algorithmique Distribuée
![Page 65: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/65.jpg)
Mesures de complexité
• Complexité en messages
• Complexité en volume
• Complexité en temps – Temps de traitement = 0, temps d’acheminement = 1
• Complexité en espace (bits ou états)
65 Algorithmique Distribuée
![Page 66: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/66.jpg)
Problèmes classiques
66 Algorithmique Distribuée
![Page 67: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/67.jpg)
Problèmes classiques
• Echange de donnée : routage, diffusion, … • Accords : consensus, élec9on, …
• Auto-‐organisa>on : arbre couvrant, clustering
• Alloca>on de ressources : exclusion mutuelle, diner des philosophes…
Algorithmique Distribuée 67
![Page 68: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/68.jpg)
Echange de donnée : routage
Algorithmique Distribuée 68
![Page 69: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/69.jpg)
Echange de donnée : routage
Algorithmique Distribuée
Source
Des>na>on
69
![Page 70: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/70.jpg)
Echange de donnée : routage
Algorithmique Distribuée 70
![Page 71: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/71.jpg)
Accord : élec9on Calculer un chef !
(avec publica9on ou non)
Algorithmique Distribuée 71
![Page 72: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/72.jpg)
Accord : élec9on Calculer un chef !
Algorithmique Distribuée
42
22
34
58 56
72 31
15
12
72
![Page 73: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/73.jpg)
Accord : élec9on Calculer un chef !
Algorithmique Distribuée
42
22
34
58 56
72 31
15
12
73
![Page 74: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/74.jpg)
Accord : élec9on Calculer un chef ! (avec publica9on)
Algorithmique Distribuée
42
22
34
58 56
72 31
15
12 12
12
12 12
12
12 12
12 12
74
![Page 75: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/75.jpg)
Auto-‐organisa>on : k-‐Clustering
Algorithmique Distribuée 75
![Page 76: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/76.jpg)
Auto-‐organisa>on : k-‐Clustering
Algorithmique Distribuée 76
![Page 77: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/77.jpg)
Auto-‐organisa>on : k-‐Clustering
• Ex. k=2
Algorithmique Distribuée
≤k
77
![Page 78: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/78.jpg)
Auto-‐organisa>on : k-‐Clustering
• Ex. k=2
Algorithmique Distribuée
≤k
78
![Page 79: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/79.jpg)
Alloca>on de ressources : exclusion mutuelle
Algorithmique Distribuée 79
![Page 80: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/80.jpg)
Alloca>on de ressources : exclusion mutuelle
Algorithmique Distribuée 80
![Page 81: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/81.jpg)
Alloca>on de ressources : exclusion mutuelle
Algorithmique Distribuée 81
![Page 82: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/82.jpg)
Alloca>on de ressources : exclusion mutuelle
Algorithmique Distribuée 82
![Page 83: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/83.jpg)
Alloca>on de ressources : exclusion mutuelle
Algorithmique Distribuée 83
![Page 84: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/84.jpg)
Exemple trivial : Exclusion mutuelle de Le Lann
84 Algorithmique Distribuée
![Page 85: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/85.jpg)
Méthodologie
1. Spécifier le problème à résoudre 2. Fixer les hypothèses sur le système 3. Ecrire un algorithme 4. Prouver que l’algorithme vérifie la
spécifica9on sous les hypothèses fixées 5. Etudier la complexité 6. Implanter l’algorithme
85 Algorithmique Distribuée
![Page 86: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/86.jpg)
Spécifica9on • Enoncé formel du problème que l’algorithme doit résoudre
• Sûreté (Safety) + Vivacité (Liveness) – Sûreté : l’ensemble des propriétés qui doivent être vérifiées à chaque instant de l’exécu9on de l’algorithme. « Rien de mal ne doit arriver. »
– Vivacité : L’ensemble des propriétés qui doivent être vérifiées à certains instants de l’exécu9on de l’algorithme. « Quelque chose de bien finit par arriver. »
86 Algorithmique Distribuée
![Page 87: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/87.jpg)
Spécifica9on de l’exclusion mutuelle
• accès concurren9el à une ressource partagée unique via une « sec9on cri9que » du code – (ex. une imprimante).
Demandeur
DedansDehors
Requête extérieure acquisition
libération
87 Algorithmique Distribuée
![Page 88: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/88.jpg)
Spécifica9on de l’exclusion mutuelle
• Sûreté : Au plus un processus est à la fois dans la sec9on cri9que.
• Vivacité : Tout processus demandeur finit par entrer en sec9on cri9que.
88 Algorithmique Distribuée
![Page 89: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/89.jpg)
Hypothèses • Processus et canaux asynchrones
• Pas de fautes • Topologies : anneaux unidirec9onnel avec orienta9on consistante
• Au moins deux processus • Un seul ini9ateur • Sec9on cri9que : finie, mais non bornée
G D
G
G
G
G
G D
D
D
D
D
89 Algorithmique Distribuée
![Page 90: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/90.jpg)
Syntaxe générale
• 2 primi9ves : – Envoyer <MessageType, liste de donnée …> à X
• X est un numéro de canal ou une iden9té
– Récep9on <MessageType, liste de donnée …> depuis X • X est un numéro de canal ou une iden9té • Vaut VRAI ou FAUX (récep9on non-‐bloquante)
Algorithmique Distribuée 90
![Page 91: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/91.jpg)
Syntaxe générale
Algorithmique Distribuée 91
1 Syntaxe
Algorithme 1 Algorithme A pour tout process p
1: Instructions d’initialisation /* pas de declaration de variable ! */2: Tant que vrai faire3: Instructions4: Pour tout q 2 V \ {p} faire /* q est un numero de canal ou une identite */5: Si reception hTypeMess, liste variables ...i depuis q alors6: Instructions7: Fin Si8: Fin Pour9: Instructions
10: Si reception hTypeMess, liste variables ...i depuis X alors11: Instructions12: Fin Si13: Instructions14: Fin Tant que
2
![Page 92: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/92.jpg)
92 Algorithmique Distribuée
2 Mutex LeLann
Algorithme 2 Exclusion mutuelle de Le Lann
1: Si Initiateur alors /* Code d’initialisation */2: Envoyer hJi a D
3: Fin Si4: Tant que vrai faire5: Si reception hJi depuis G alors6: Si Etat = demandeur alors7: Etat dedans
8: SC /* Section critique */9: Etat dehors
10: Fin Si11: Envoyer hJi a D
12: Fin Si13: Fin Tant que
3
![Page 93: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/93.jpg)
Preuve de correc9on
(La preuve est triviale, mais voici une version très détaillée.)
Lemme 1 (Sûreté). Jamais plus d’un processus n’est en sec=on cri=que.
Preuve. • Une seule créa9on : A l’ini9alisa9on, un seul jeton est créé car il
n’y a qu’un seul ini9ateur. • Pas de duplica9on : Chaque processus relaie un message « Jeton »
à droite que s’il l’a reçu préalablement de la gauche. Donc, le jeton créé ini9alement reste unique dans le système
pendant toute l’exécu9on. Comme un processus ne peut exécuter la sec9on cri9que que s’il dé9ent le jeton, le lemme est vérifié.
93 Algorithmique Distribuée
![Page 94: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/94.jpg)
Preuve de correc9on
Lemme 2 (Vivacité). Tout demandeur entre en sec=on cri=que en temps fini.
Preuve. 1. L’ini9alisa9on dure un temps fini. (algorithme) 2. Le temps d’exécu9on de la sec9on cri9que est fini. (hypothèse) 3. Le temps d’acheminement des messages est fini. (hypothèse) 4. Le temps de traitement des messages est fini. (hypothèse) 5. Toute récep9on d’un jeton est suivie d’un envoi. (algorithme) 6. Le jeton se déplace toujours dans le même sens. (algorithme) On a donc une circula9on de jeton unidirec9onnelle perpétuelle.
Ainsi, tout demandeur finit par obtenir le jeton et ainsi finit par exécuter la sec9on cri9que.
94 Algorithmique Distribuée
![Page 95: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/95.jpg)
Preuve de correc9on
D’après les deux lemmes précédents, nous avons : Théorème 1. L’algorithme 1 résout l’exclusion mutuelle dans un anneau unidirec=onnel.
Remarque 2. Si on lève l’une des hypothèses, la preuve ne marche plus !
95 Algorithmique Distribuée
![Page 96: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/96.jpg)
Complexité En nombre de messages et en temps d’exécu9on dans le meilleur et le
pire des cas. • Complexité pour un tour de jeton :
– n • Si un processus est demandeur en cours d’exécu9on, quel est le
nombre de messages générés avant que le processus entre en sec9on cri9que – (pire : n − 1, meilleur : 0)
• Temps de service : combien d’autres processus peuvent exécuter la sec9on cri9que avant qu’un processus (demandeur) par9culier ne le fasse – (pire : n − 1, meilleur : 0)
• Ra9o nombre de messages / nombre de demandes – (pire : ∞ — aucune demande, meilleur : 1 — tous demandeurs)
96 Algorithmique Distribuée
![Page 97: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/97.jpg)
Conclusion sur l’algorithme
• Le dernier résultat montre un inconvénient majeur de ce type de solu9on (proac9ve) : les échanges de messages con9nuent même s’il n’y a aucune demande.
• Pour régler ce problème, il existe des algorithmes dit « à permission » (réac9ve)
97 Algorithmique Distribuée
![Page 98: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/98.jpg)
Deuxième Exemple : Circula9on d’un jeton dans un réseau
quelconque
98 Algorithmique Distribuée
![Page 99: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/99.jpg)
Spécifica9on
La circula=on de jeton est un
algorithme à vague
99 Algorithmique Distribuée
![Page 100: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/100.jpg)
Algorithme à vague
![Page 101: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/101.jpg)
Introduc9on
• Dans un système distribué, on a (parfois) besoin de : – Diffuser des informa9ons (à tous les processus)
• (Broadcast)
Algorithmique Distribuée 101
m
m
m
m m m
![Page 102: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/102.jpg)
Introduc9on
• Dans un système distribué, on a (parfois) besoin de : – Synchroniser (globalement) les processus
• E.g., l’étape i-‐1 est elle finie ?
Algorithmique Distribuée 102
i
i i
i
i-‐1
![Page 103: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/103.jpg)
Introduc9on
• Dans un systèmes distribué, on a (parfois) besoin de : – Calculer des fonc9ons globales
• E.g., quelle est la plus pe9te iden9té ?
Algorithmique Distribuée 103
23
43 30
67
5
![Page 104: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/104.jpg)
Introduc9on
• Ces problèmes ont plusieurs points communs • D’où, l’idée de trouver un algorithme général
• Les algorithmes à vague
Algorithmique Distribuée 104
![Page 105: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/105.jpg)
Défini9on
• Un algorithme à vague vérifie les trois propriétés suivantes : – Terminaison – Décision – Dépendance
Algorithmique Distribuée 105
![Page 106: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/106.jpg)
Défini9on
• Terminaison : Toutes ses exécu9ons (ou vagues) sont finies
• Décision : Chacune de ses exécu9ons con9ent au moins un évènement par9culier appelé décision
• Dépendance : Chaque évènement de décision est causalement précédé (au sens de Lamport) par au moins un évènement sur chaque processus
Algorithmique Distribuée 106
![Page 107: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/107.jpg)
Exemples
• Parcours – Largeur – Profondeur (à l’aide d’un jeton)
• Propaga9on d’Informa9on avec Retour (PIR)
• Applica9ons : snapshot, détec9on de terminaison, calcul d’infimum, etc.
Algorithmique Distribuée 107
![Page 108: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/108.jpg)
Instancia9on
• Spécificité une (vague de) circula9on de jeton – Décision (de terminaison)
• Unique • Par l’ini9ateur
– Dépendance • Circula9on : séquen9elle (ordre causal total)
Algorithmique Distribuée 108
![Page 109: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/109.jpg)
Instancia9on
• Une (vague de) circula9on de jeton – Sûreté :
• Il existe au plus un jeton dans le réseau • Au plus une décision est prise (Décision) • Si une décision est prise, alors tous les processus ont été visités par le jeton (Dépendance)
– Vivacité • L'exécu9on termine (Terminaison) • L'ini9ateur finit par décider (Décision)
Algorithmique Distribuée 109
![Page 110: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/110.jpg)
Remarque
• Il existe aussi des algorithmes qui exécutent une infinité de vagues – E.g., circula=on de jeton perpétuelle pour l’exclusion mutuelle
Algorithmique Distribuée 110
![Page 111: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/111.jpg)
Hypothèses pour notre circula9on de jeton
• Processus et canaux asynchrones • Pas de fautes • Canaux é9quetés de 1 à δp pour tout processus p
• Topologies : quelconque (connexe) d’au moins deux nœuds
• Mono-‐ini9ateur
111 Algorithmique Distribuée
![Page 112: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/112.jpg)
Rappel
• Cas plus simple : circula9on dans un réseau en arbre
112 Algorithmique Distribuée
![Page 113: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/113.jpg)
Circula9on d’un jeton dans un arbre
• Vu l’an dernier !
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
113
![Page 114: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/114.jpg)
Circula9on d’un jeton dans un arbre
• L’ini9ateur envoie le jeton J sur le canal 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
114
![Page 115: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/115.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 3 • (3 mod 3) + 1 = 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3 J
115
![Page 116: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/116.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 3 • (3 mod 3) + 1 = 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
116
![Page 117: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/117.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 1 • (1 mod 1) + 1 = 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
117
![Page 118: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/118.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 3 • (1 mod 3) + 1 = 2
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
118
![Page 119: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/119.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 1 • (1 mod 1) + 1 = 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
119
![Page 120: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/120.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 3 • (2 mod 3) + 1 = 3
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3 J
120
![Page 121: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/121.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 2 • (1 mod 2) + 1 = 2
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
121
![Page 122: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/122.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 2 • (1 mod 2) + 1 = 2
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
122
![Page 123: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/123.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 1 • (1 mod 1) + 1 = 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
J
123
![Page 124: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/124.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal i, un non-‐ini9ateur renvoie le jeton sur le canal (i mod δ)+1
• Ici δ = 2 • (2 mod 2) + 1 = 1
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3 J
124
![Page 125: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/125.jpg)
Circula9on d’un jeton dans un arbre
• Sur récep9on du canal δ, l’ini9ateur décide la terminaison
• Ici δ = 2
Algorithmique Distribuée
1
1
1 1 1
1
2
2 2
3
125
![Page 126: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/126.jpg)
Circula9on d’un jeton dans un réseau quelconque ?
• Est-‐ce que l’algorithme précédent fonc9onne ?
NON !
Algorithmique Distribuée 126
![Page 127: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/127.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1 1
1
1
1
1
2
2
2
2
2
2
127
![Page 128: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/128.jpg)
Solu9on
Algorithmique Distribuée 128
• Algorithme de Tarry (1885)
• Problème de Labyrinthe • « Ne reprendre l'allée
ini>ale qui a conduit à un carrefour pour la première fois que lorsqu'on ne peut pas faire autrement »
• Sommets = intersec9ons • Liens = allées entre les
intersec9ons des arêtes
![Page 129: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/129.jpg)
Variables
• Pour chaque processus
– Un pointeur Père ∈ {T,⊥} ∪ {1…δ} ini9alisé à • T pour l’ini9ateur • ⊥ pour les suiveurs
– Un tableau de Booléen Visite[1..δ], ini9alement toutes les cases sont à faux.
Algorithmique Distribuée 129
![Page 130: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/130.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1 1
1
1
1
3
2
2
2
2 2 2
1 3
130
![Page 131: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/131.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1 1
1
1
1
3
2
2
2
2 2 2
1 3
J
131
![Page 132: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/132.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1 1
1
1
1
3
2
2
2
2 2 2
1 3
J
132
![Page 133: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/133.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1 1
1
1
1
3
2
2
2
2 2 2
1 3
J
1
133
![Page 134: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/134.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2
2
2 2 2
1 3
J
1
1
134
![Page 135: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/135.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2
2
2 2 2
3
J
1
1
1
135
![Page 136: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/136.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2
2
2 2 2
3 J
1
1
1
136
![Page 137: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/137.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2
2
2 2 2
3
J
1
1
1
137
![Page 138: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/138.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2
2
2 2 2
3
J
1
1
1
138
![Page 139: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/139.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2
2 2 2
3
J
1
1
1
2 139
![Page 140: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/140.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2
2 2 2
3
J 1
1
1
2
2
140
![Page 141: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/141.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
141
![Page 142: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/142.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
142
![Page 143: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/143.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J 1
1
1
2
2
2
143
![Page 144: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/144.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
144
![Page 145: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/145.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
145
![Page 146: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/146.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
146
![Page 147: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/147.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J 1
1
1
2
2
2
147
![Page 148: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/148.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
148
![Page 149: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/149.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2
149
![Page 150: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/150.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
3
2 2 2
3
J
1
1
1
2
2
2 1
150
![Page 151: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/151.jpg)
Exemple
Algorithmique Distribuée
1
2
3
1
2
1
1
1
3
2 2 2
3 1
1
1
2
2
2 1
Terminé !
151
![Page 152: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/152.jpg)
Conclusion générale
• Depuis 40 ans – La plupart des problèmes d’algorithmiques répar9es ont été résolus de manière efficace
– En supposant des réseaux sans pannes …
Algorithmique Distribuée 152
![Page 153: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/153.jpg)
Challenge actuel • Les réseaux modernes sont à grande-‐échelle et fait de machines hétérogènes et produites en masses à faible coût, e.g. – Internet
• (10 milliard de machine connectée d’ici 2016) • Internet des objets
– Réseaux sans fils • Communica9on radio : beaucoup de pertes de messages • Crash de machines à cause des ba�eries limitées
⇒ Forte probabilité de pannes ⇒ Interven9on humain impossible ⇒ Besoin d’algorithmes distribués tolérant les pannes
Algorithmique Distribuée 153
![Page 154: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/154.jpg)
Syntaxe : récep9on bloquante
Algorithmique Distribuée 154
3 Reception bloquante
Algorithme 3 Algorithme avec reception bloquante pour tout process p
1: Instructions d’initialisation2: Tant que vrai faire3: Instructions4: attendre de recevoir X messages de la forme hTypeMess, liste variables ...i depuis tous les
processus de S
5: Instructions6: Fin Tant que
Algorithme 4 Algorithme avec reception bloquante pour tout process p
1: Instructions d’initialisation2: Tant que vrai faire3: Instructions4: ListeMess ;5: i 06: Tant que i < X faire7: Pour tout q 2 S faire8: Si reception M = hTypeMess, liste variables ...i depuis q alors9: i++
10: ListeMess ListeMess [ {M}11: Fin Si12: Fin Pour13: Fin Tant que14: Instructions15: Fin Tant que
4
![Page 155: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/155.jpg)
Syntaxe : récep9on bloquante
Algorithmique Distribuée 155
3 Reception bloquante
Algorithme 3 Algorithme avec reception bloquante pour tout process p
1: Instructions d’initialisation2: Tant que vrai faire3: Instructions4: attendre de recevoir X messages de la forme hTypeMess, liste variables ...i depuis tous les
processus de S
5: Instructions6: Fin Tant que
Algorithme 4 Algorithme avec reception bloquante pour tout process p
1: Instructions d’initialisation2: Tant que vrai faire3: Instructions4: ListeMess ;5: i 06: Tant que i < X faire7: Pour tout q 2 S faire8: Si reception M = hTypeMess, liste variables ...i depuis q alors9: i++
10: ListeMess ListeMess [ {M}11: Fin Si12: Fin Pour13: Fin Tant que14: Instructions15: Fin Tant que
4
![Page 156: Algorithmique-Distribuée-devismes/SD/AD_cours1.pdf · Syntaxe-générale-Algorithmique-Distribuée- 91 1 Syntaxe Algorithme 1 Algorithme A pour tout process p 1: Instructions d’initialisation](https://reader033.vdocuments.pub/reader033/viewer/2022051810/6019d3cd748e0b270d035f79/html5/thumbnails/156.jpg)
Algorithmique Distribuée
Merci de votre a�en9on !
156