« INFO604 : Systèmes de synchronisation et Processus » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 5 : | Ligne 5 : | ||
* [http://lama.univ-savoie.fr/~provencal/INFO604/TD/TD3.pdf énoncé du TD3] |
* [http://lama.univ-savoie.fr/~provencal/INFO604/TD/TD3.pdf énoncé du TD3] |
||
* [http://lama.univ-savoie.fr/~provencal/INFO604/TD/TD4.pdf énoncé du TD4] |
* [http://lama.univ-savoie.fr/~provencal/INFO604/TD/TD4.pdf énoncé du TD4] |
||
* [http://lama.univ-savoie.fr/~provencal/INFO604/TD/TD5.pdf énoncé du TD5] |
|||
Exemple d'utilisation de sémaphores nommées : |
Exemple d'utilisation de sémaphores nommées : |
||
Ligne 22 : | Ligne 23 : | ||
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/danseursSem.c programme ``danseursSem.c``.] |
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/danseursSem.c programme ``danseursSem.c``.] |
||
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/danseursCond.c programme ``danseursCond.c``.] |
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/danseursCond.c programme ``danseursCond.c``.] |
||
Version parallèle du tri rapide (quicksort). La première version utilise un "trywait" et l'attente active pour faire attendre les threads et détecter s'il reste du travail à accomplir. La deuxième version évite l'attente active en ayant recours à une variable globale indiquant si le travail est terminé. La troisième version utilise une variable de condition de manière à ce que le thread principal puisse tuer tous ces fils une fois le travail terminé. |
|||
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/triRapidePar-v1.c programme ``triRapidePar-v1.c``.] |
|||
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/triRapidePar-v2.c programme ``triRapidePar-v2.c``.] |
|||
* [http://lama.univ-savoie.fr/~provencal/INFO604/exemples/triRapidePar-v3.c programme ``triRapidePar-v3.c``.] |
Version du 22 février 2011 à 09:59
Quelques documents pour les TD et TP d'INFO604 :
Exemple d'utilisation de sémaphores nommées :
- programme ``createur.c`` qui crée un sémaphore.
- programme ``parleur.c`` qui décrémente (DOWN) un sémaphore.
- programme ``gestionnaire.c`` qui incrémente (UP) un sémphore.
- programme ``destructeur.c`` qui détruit un sémaphore.
Exemple d'utilisation de sémaphores sans-noms :
Exemple d'utilisation d'une variable de condition :
Deux versions du même programme. Dans les deux cas l'affichage est effectué à l'aide de la librairie ncurses. Dans le premier exemple, la synchronisation est assurée à l'aide d'un sémaphore et de deux mutex alors que dans le second utilise deux mutex et une variable de condition.
Version parallèle du tri rapide (quicksort). La première version utilise un "trywait" et l'attente active pour faire attendre les threads et détecter s'il reste du travail à accomplir. La deuxième version évite l'attente active en ayant recours à une variable globale indiquant si le travail est terminé. La troisième version utilise une variable de condition de manière à ce que le thread principal puisse tuer tous ces fils une fois le travail terminé.