Cours de Programmation Concurrente
Université Grenoble Alpes / Polytech INFO4
Responsable: Fabienne Boyer
Intervenants: Fabienne Boyer (Fabienne.Boyer@imag.fr), Noel de Palma (Noel.depalma@imag.fr)
Organisation des cours
VOLUMES
8 CM d’1h30
8 TD de 1h30
6h de TP en C
1 TP en libre-service
OBJECTIFS
L’objectif de l’enseignement est de maitriser la programmation de processus concurrents.
Nous étudions tout d'abord les notions de processus et de threads, du point de vue de leur mise en oeuvre
au niveau du système d'exploitation et de leur usage au travers de la librairie C.
Nous demandons aux étudiants de programmer
un shell (interprèteur de commandes).
Nous voyons ensuite les outils de synchronisation, ceux de bas niveau (verrous) et ceux de plus haut
niveau (moniteurs, sèmaphores, sections critiques conditionnelles). Nous
demandons aux étudiants d'expérimenter ces outils en réalisant des programmes concurrents en Java.
Enfin nous abordons la mise en oeuvre de serveurs à base de modèle d'exécution concurrente. Nous voyons ici comment les threads et les processus peuvent
etre utilisés pour mettre en oeuvre des serveurs concurrents. Nous considérons en particulier les serveurs multi-threadés
ainsi que les serveurs à base d'exécuteurs.
Plan des cours
-
1 Processus et threads
- 1.1 Notion de processus
- 1.2 Modèle d’exécution d’un processus
- 1.3 Ordonnancement des processus
- 1.4 Notion de processus léger
-
2 Outils de base pour la gestion de la concurrence
- 2.1 Les sections critiques
- 2.2 Les verrous
-
3 Outils de plus haut niveau pour la gestion de la concurrence
- 3.3 Les sémaphores
- 3.4 Les moniteurs
- 3.5 Les sections critique conditionnelles
-
4 Gestion des interblocages
- 4.1 Caractérisation des interblocages
- 4.2 Traitement des interblocages (prévention, guérison, évitement)
-
5 Mise en oeuvre de serveurs concurrents
- 4.1 Shémas d'exécution concurrentes à base de threads
- 4.1 Shémas d'exécution concurrentes à base d'exécuteurs
- TD Processus
- TD Threads
- TD Threads Bavard.java
- TD Threads: MergeSortETD.java
- TD Exclusion Mutuelle
- TD Moniteurs
- TD Lecteurs Redacteurs
- TD Interblocages
- TP Producers/Consumers
- TP Readers/Writers
- Examen 18-19
- Examen 09-10
Supports Complémentaires
© Fabienne Boyer - Generated by webgen