~~NOTOC~~ ====== Programmation Répartie ====== ===== Description ===== Le cours comprend une partie théorique et une partie pratique où le langage de programmation utilisé est Java. Le but est d'apprendre les principes fondamentaux de la programmation de plusieurs threads accédant à la mémoire partagée: des simples verrous aux primitives plus évoluées, de comprendre comment ils sont mis en oeuvre dans un langage de programmation ( Java) et de les utiliser. ===== Syllabus ===== Partie théorique : * exclusion mutuelle et problèmes dérivés * objets concurrents ( spécification séquentielle, linearisabilité) * registres atomiques et snapshots * consensus (universalité, numéro de consensus, impossibilité) * différentes approches pour implémenter une structure de données concurrentes Partie pratique : * base de la programmation concurrente * classes java.util.concurrent.* * différentes implémentations d'une structure de données concurrente; performance ===== Pré-requis ===== Etre à l'aise en programmation Java hors aspect programmation concurrente.