Threads Flashcards
Qu’est-ce qu’un thread?
Chaque thread a un état, une pile, un contexte d’exécution et une mémoire pour les variables locales. Contient une trace, un état et une priorité. Tous les threads d’un processus se partagent les ressources.
Quelles sont les 3 composantes d’un thread?
Thread control block, pile utilisateur et pile kernel
Quels sont les états des threads?
En cours d’exécution, prêt ou bloqué
Quelles sont les 4 étapes qui peuvent changer l’état d’un thread?
Création, blocage, déblocage et terminaison.
Quelles sont les deux catégories d’implémentation de threads?
Kernel et utilisateur
Qu’est-ce qu’un thread de niveau utilisateur?
Le kernel ne connait pas l’existence de thread, seule l’application les gère.
Quels sont les avantages des threads de niveau utilisateur?
- Pas besoin de privilège de niveau kernel pour switcher de thread
- Scheduling est décidé par l’application
- Peut marcher sur n’importe quel OS
Quels sont les désavantages des threads de niveau utilisateur?
- Un system call bloque non-seulement le thread, mais le processus au complet
- Ne peut pas faire plusieurs calculs en même temps.
Qu’est-ce qu’un thread de niveau Kernel?
Tout le thread management est fait par le kernel. Cependant, un API permet de controller le kernel dans l’application.
Quels sont les avantages d’un KLT?
- Plusieurs threads sur plusieurs processeurs
- Peut avoir un thread blocké mais quand même exécuter un autre thread du même processus
- Les routines du kernel peuvent être multithreadées
Quels sont les désavantages d’un KLT?
- Besoin d’aller en mode kernel pour changer de thread
- Utilisateur doit tout gérer