Cette organisation contient les ressources et projets liés au cours Programmation Distribuée de Nantes Université.
Organisation en construction : ces ressources ne sont pas encore disponibles
- Slides : version PDF avec animations
- Handout : version PDF sans animation
- Java-snippets : exemples Java du cours
- Livret de TD : livret de TD
Ce cours est destiné à des étudiants de M1 en Informatique, ainsi qu'à toute personne s'intéressant à la synchronisation des systèmes répartis.
Le responsable du module est Matthieu Perrin.
Les volumes horaires dédiés à ce cours à Nantes Université (séances de 1h20) sont les suivants :
- Cours magistraux : 12h
- Travaux dirigés : 12h
- Modèles et primitives de synchronisation
- asynchronisme et pannes
- instructions atomiques
- Conception et analyse des structures non-bloquantes
- conditions de progression : lock-freedom et wait-freedom
- algorithmes de structures de données non-bloquantes : piles, files, compteurs
- Résultats fondamentaux
- impossibilité du consensus
- hiérarchie de Herlihy
À la fin de ce cours, un étudiant doit être capable de :
- Identifier la condition de progression (lock-freedom, wait-freedom) d’un algorithme concurrent donné.
- Concevoir une structure de données non-bloquante simple en respectant les principes de progression.
- Identifier et expliciter les hypothèses nécessaires à la conception d’une structure de données concurrente.
- Mettre en œuvre un algorithme de structure de données non-bloquante dans un langage de programmation orienté objet.
- M. Raynal. Concurrent Programming – Algorithms, Principles, and Foundations, Springer, 2013.
Organisation en construction : les ressources ne sont pas encore disponiblae.
- CM — Slides de cours.
- TD — Énoncés et corrections de TD.
- Dépôt privé accessible aux enseignants sur demande
Ce cours a été conçus comme la deuxième partie sur trois d'un cours sur la synchronisation des systèmes répartis :
- Programmation Concurrente en Multi-Thread — Programmation multi-threads bloquante en mémoire partagée.
- Programmation Distribuée — Algorithmique concurrente non-bloquante en mémoire partagée.
- Services de Communication et Systèmes Distribués — Algorithmique tolérante aux pannes en passage de messages.
Sauf mention contraire, les contenus de cette organisation sont distribués sous les licences suivantes :
- Supports pédagogiques (LaTeX, transparents, exercices, PDF) :
Creative Commons Attribution - ShareAlike 4.0 International (CC BY-SA 4.0) - Code source Java (snippets, projets de TP) :
MIT License
Les détails, ainsi que les mentions d'attribution, les licences des images et des données externes, sont disponibles dans le fichier LICENSE.md.