INFO622 : Systèmes de synchronisation et Processus
Aller à la navigation
Aller à la recherche
CM1 : Introduction
- Banque virtuelle : exemple de condition de concurrence. programme ``banqueVirtuelle.c``.
CM2 : Processus vs Threads, exclusion mutuelle I
- Entêtes de fonctions POSIX (I) : fonctions_POSIX_1.pdf. - Exemple d'utilisation du fork : programme ``exFork.c``. - Exemple d'utilisation de threads (compiler avec l'option -lpthread) : programme ``exThread.c``. - Exemple d'attente active avec des threads (compiler avec l'option -lpthread) : programme ``attenteActive.c``.
CM3 : Sémaphores et mutex
- Entêtes de fonctions POSIX (II) : fonctions_POSIX_2.pdf. - Implémentation du problème "producteurs/consommateurs" avec sémaphores et mutex (compiler avec l'option -lpthread) : programme ``prod_cons.c``.
CM4 : Sémaphores POSIX et mémoire partagée
- Entêtes de fonctions POSIX (III) : fonctions_POSIX_3.pdf. - Sémaphores non nommés avec threads (compiler avcec l'i: programme ``semThread.c``. - Sémaphores nommés avec processus distincs (compiler avec l'option -lpthread) : programme ``createur.c``. programme ``destructeur.c``. programme ``gestionnaire.c``. programme ``parleur.c``. - Mémoire partagée (compiler avec l'option -lrt) : programme ``mp_lecture.c``. programme ``mp_affichage.c``.
CM5 : Interblocages
- Banque virtuelle 2 : exemple d'interblocage (compiler avec l'option -lpthread) : programme ``banqueVirtuelle.c``.
CM6 : Variables de condition et barrières de synchronisation
- Implémentation du problème producteur/consommateur avec variables de condition (compiler avec l'option -lpthread) : programme ``prodCons_cnd.c``. - Exemple simple d'utilisation d'une barrière de synchronisation (compiler avec l'option -lpthread) : programme ``barriere.c``.
CM 7 : Tubes (pipe et fifo), fonction select
- Utilisation typique d'un tube non-nommé (pipe) par un père et son fils : programme ``tubeFork.c``. - Exemple de programmes communicant à l'aide d'une tube nommé (fifo), créez d'abord la fifo avec la commande ``mkfifo`` : programme ``fifoLecture.c``. programme ``fifoEcriture.c``. - Exemple d'utilisation de la fonction select pour surveiller en même temps les tubres "fifo1" et "fifo2" ::w programme ``fifo2Lecture.c``.
TD :
- [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Première feuille de TD.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Deuxième feuille de TD.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Troisième feuille de TD.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Quatrième feuille de TD.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD5.pdf Cinquième feuille de TD.]
Exercices personnels
- [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/devoir1.pdf Exercice personnel #1.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/sol_devoir1.c Une solution de l'exercice personnel #1.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/devoir2.pdf Exercice personnel #2.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/sol_devoir2.c Une solution de l'exercice personnel #2.]
Entêtes de fonctions
- [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_1.pdf Fork et création de threads.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf Sémaphores et mutex.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf Mémoire partagée.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf Variables de condition et barrières de synchronisation.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_5.pdf Tube.]
TP1 : Tri rapide en parallel
- [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/tp1.pdf Énoncé du TP.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/genAleat.c Programme pour la génération de suite de nombres.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/testTri.sh script permettant de comparer votre tri à la commande sort.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/triRapide.h Entêtes de fonctions relatives au tri rapide.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/triRapide.c Version séquentielle du tri rapide, à modifier.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/tri.c Lis des nombres sur l'entrée standard, appele triRapide et affiche le résultat. ]
TP2 : Implémentation de tubes simplifiés
- [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/info622-tp2.c Fichier source principal et énoncé du TP.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/monTube.h Entêtes de fonctions relatives aux tube monTube.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/monTube.c Implémentation des fonctions relatives aux tubes monTube.]
TP3 : Pizzéria
- [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/tp3.pdf Énoncé du TP.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/clients.o Fichier objet pour recompiler le programme 'clients'.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/synchroPizza.h Entêtes des fonctions utilisées pour préparer les pizzas.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/synchroPizza.c Implémentation des fonctions utilisées pour préparer les pizzas.] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/pizzeria.c Source du programme implémentant une pizzéria virtuelle (à compléter).] - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/makefile Makefile (optionnel).]