Académique Documents
Professionnel Documents
Culture Documents
Compte rendu 2
TP N°2 : Les Threads : Fonctionnement, Communication,
Synchronisation et Clonage
Nom et Prénom : Hanane ABID
I. Objectifs du travail :
faire communiquer des threads ;
comprendre le fonctionnement des threads ;
faire synchroniser des threads ;
le clonage des processus.
Exercice 1 :
La fonction main contient une boucle infinie qui affiche les ‘o’ et le thread affiche
continuellement les ‘x’ sur l’écran.
Exercice 2 :
1. Le programme exo2.c :
3. Proposition : forcer main à attendre la fin des deux autres threads. Ce dont nous avons
besoin a une fonction similaire à wait qui attende la fin d'un thread au lieu de celle d'un
processus. Cette fonction est pthread_join, qui prend deux arguments: l'identifiant du
thread à attendre et un pointeur vers une variable void* qui recevra la valeur de retour du
thread s'étant terminé.
Exercice 4 : Mutexes
Exercice 5 : Sémaphore
Figure 8 :programme d’un file d’attente contrôlée par sémaphore (exo5.c)
Un thread errant peut endommager d'autres threads dans le même processus car les
threads partager le même espace de mémoire virtuelle et d'autres ressources ;
Les threads doivent être utilisés pour les programmes qui nécessitent un
parallélisme à grain fin. Pour Par exemple, si un problème peut être divisé
en plusieurs tâches, threads presque identiques, peut être un bon choix ;
Le partage de données entre les threads est trivial car les threads partagent la même
mémoire cependant, un grand soin doit être pris pour éviter les conditions de
concurrence ;
V. Questions :
Est-ce que on peut associer des threads à des serveurs ?
Est-il autorisé de lancer un nombre de thread supérieur au nombre de clients que
peut accepter simultanément le serveur ?