Tux

Unix : Programmation Système

TD 9 - Les Threads

C. Drocourt
I.U.T. Amiens
drocourt@iut-amiens.fr

Exercice  1 :

1 – Faire un programme créant plusieurs threads, regardez le résultat de la commande ps.
2 – Faire un programme créant plusieurs threads modifiant des variables globales du programme. Comparez avec les processus.
3 – Les données locales d’un thread sont normalement privées, toutefois on peut y accéder en connaissant l’adresse de cette donnée. Faite en programme mettant en œuvre ce principe.
4 – Faire un programme créant plusieurs threads et utilisant les fonctions pthread_cancel, pthread_exit, pthread_detach et pthread_join.
5 – Faire un programme créant plusieurs threads et utilisant la pile de nettoyage.

Exercice 2 :

Vous allez maintenant reprendre reprendre le même exercice que celui que vous avez réalisé avec les sémaphores qui est le suivant :

Le but du TD
Implanter le graphe de précédence ci-contre en utilisant à la place des sémaphores S et U plusieurs méthodes différentes :
– En utilisant des pthread_join, possible ?
– Uniquement avec des mutex,
– Avec des mutex et des conditions quand cela est possible.

Ce graphe veut dire :
– T2, T3 et T4 ne s'exécuteront que lorsque T1 sera terminée.
– T5 ne s'exécutera que lorsque T2, T3 et T4 seront terminées.

Les actions que doivent réaliser les processus sont :
– T1 : dormir 3 secondes
– T2 : dormir 20 secondes
– T3 : dormir 1 seconde
– T4 : dormir 4 secondes
– T5 : dormir 2 secondes