Présentation des objets Thread
Un objet thread en mode utilisateur représente un chemin d’exécution dans le processus actuel. Chaque objet thread en mode utilisateur est implémenté à l’aide d’un objet thread incorporé en mode noyau.
Un objet thread en mode noyau est un instance d’un type d’objet répartiteur défini par le noyau. Le thread qu’il représente est l’entité schedulable de base dans le système d’exploitation.
Objet thread :
Est distribué pour l’exécution par le noyau.
Possède les propriétés suivantes à tout moment :
état de répartition
priority
context
Mode d’exécution (noyau ou utilisateur)
Affinité
Appartient à un objet de processus, mais peut s’attacher à l’espace d’adressage d’un autre processus.
En règle générale, la plupart des pilotes s’exécutent dans le contexte du thread en cours d’exécution, c’est-à-dire dans un contexte de thread arbitraire. Alors qu’un pilote de système de fichiers peut créer un processus indépendant pour ses propres threads dédiés à l’appareil, les systèmes de fichiers évitent généralement de configurer un processus et des threads créés par un pilote afin de conserver la mémoire système et d’éviter la surcharge des commutateurs de contexte.
Les FS (et d’autres pilotes) peuvent configurer des threads dédiés au périphérique (processus système) et/ou les FS peuvent utiliser des threads de travail système s’ils ont besoin d’un contexte de thread spécifique au pilote dans lequel s’exécuter. Les pilotes utilisent les routines PsXxx en mode noyau pour créer des processus et/ou des threads dédiés aux appareils. Les FS appellent des routines ExXxx pour utiliser des threads de travail système.