Chapitre 3 Flashcards
Qu’est ce qu’un thread?
C’est une unité d’exécution chargé d’exécuter une paretie du code du pricessus auquel elle est attachée
Combien de thread un processus possède t’il
1+ thread
1 thread principal créer à la création du processus
Quelles sont les cractéristiques d’un thread?
– un identificateur unique – une pile d'exécution – des registres (un compteur ordinal) – un état… (espace d’adressage, fichiers, périphériques…) sont partragé entre les thread du processus
Quelles sont les avantages d’utiliser les threads?
● Réactivité (le processus peut continuer à s’exécuter même si certaines de ses parties sont bloquées),
● Partage de ressources (facilite la coopération, améliore les performances),
● Économie d’espace mémoire et de temps. Il faut moins de temps pour :
– créer, terminer un fil (sous Solaris, la création d’un processus est 30 fois plus lente que celle d’un thread),
– Changer de contexte entre deux threads d’un même processus.
Donner les caractéristique des threads utlisateur
- Implanter au niveau utilisateur (dans une libraire) et non au niveau kernel.
- Le noyau ne les gere pas. ne s’en préoccupe pas
- Ils se partagent le temps d’exécution du leur processus
Donner les inconvénient d’utiliser les threads
– À tout instant, au plus un fil par processus est en cours d’exécution.
Cette implémentation n’est pas intéressante pour des systèmes
multiprocesseurs.
– Si un thread d’un processus se bloque, tout le processus est bloqué.
Pour pallier cet inconvénient, certaines librairies transforment les
appels système bloquants en appels système non bloquants.
Donner les caractéristiques des threads noyau
- Directement supporter par le noyau
- Le système d’exploitation se charge de leur gestion
- Du temp CPU est alloué à chaque thread
- Si un thread est bloqué, un autre thread du meme processus peut etre elu par le noyau
- Adapter aux systeme multi-processeurs
- Un systeme peut ajuster le niveau de priorité des threads
Donner les inconvénients des threads noyau
● Performance (gestion plus coûteuse)
● Les programmes utilisant les fils d’exécution noyau sont moins portables que ceux qui utilisent des fils utilisateur.
Que fait vfork?
Il bloque le processus parent jusqu’a ce que le processus enfant ait terminé
Quelle est la différence entre fork et clone?
clone permet de spécifier les ressources qui sont partagées
Que fait pthread_exit?
● Termine l’exécution du thread.
● Si le thread n’est pas détaché, le TID du thread et l’état de terminaison sont
sauvegardés pour les communiquer au thread qui effectuera pthread_join.
Que fais l’instruction pthread_create
Créer un pthread
Que fais l’instruction pthread_join?
Attend que le thread envoyer en parametre se termine.