Programmation concurrente (ASR7 - L3) Printemps 2017
L'emploi du temps est ici edt_asr7.pdf vous pouvez voir les salles sur ADE, où elles sont affichées dans le cours de LIFPROJET.
Cours
- Les threads
- les diapos ou la version imprimable
- le chat donné en exemple dans le cours exemplecours.tar.gz
- un exemple pour lancer des threads lancement_thread.cpp
- le compteur cpt.cpp ou avec un moniteur mon_cpt.cpp
- Les problèmes classiques
- les diapos ou la version imprimable
- le problème des recteurs et rédacteurs lecteur_redacteur.pdf et le code associé lecteurredacteur.tar.gz
- L'ordonnancement
- les diapos ou la version imprimable
- Les fichiers
- les diapos ou la version imprimable
- Administration
- les diapos ou la version imprimable
Les TDs
- TD1 : sémaphore de Dijkstra et producteur consomateur
- le sujet;
- <hi #efe4B0>la correction</hi>
- TD2 :
- le sujet;
- <hi #efe4B0>la correction</hi>
- TD3 :
- le sujet;
- <hi #efe4B0>la correction</hi>
- TD4 :
- le sujet;
- <hi #efe4B0>la correction</hi>
Les TPs
TP1 prise en main des threads
Le sujet est ici, vous devez paralléliser ce code lancement.cpp.
TP2 premier exemple de gestion de données partagées
Le sujet est ici tp2.pdf et le code de départ thread_fractale.tar.gz
TP3 Producteur consomateur
Le sujet est ici tp3.pdf, pour l'application, on réutilise le code de calcul des fractales.
TP4 Chat multi-utilisateurs
Vous devez réaliser un système de chat multi utilisateur. C'est à dire un logiciel qui relie ses clients en leur permettant d'échanger des messages.
Ce logiciel doit utiliser les threads pour assurer la gestion des clients en parrallèle. C'est à dire que chaque nouveau client génère un thread qui s'occupe de lui. Chaque client doit être identifié par un nom qui apparaitra au début de tout ses messages. Ce que le client transmet au serveur doivent être envoyé à tout les autres, et inversement, il doit recevoir tout les messages des autres.
Améliorations possibles :
- Gérer un petit langage de commande (par exemple tout message précédé par # est en fait une commande, les commandes permettent de se déconnecter, d'envoyer des icons, d'écrire des messages personnels…);
- Gérer des discutions privées dont les messages ne sont échangés qu'entre les membres;
- …
TP5 Ordonnanceur et débordement mémoire
Le sujet est ici tp5.pdf .
- voila le code de la commande
changeUser
changeuser.c - voila le code à compléter pour lancer des threads sched.cpp