Segment d'état de tâcheUn segment d'état de tâche ou Task state segment (TSS) est une structure spécifique aux processeurs de la famille x86 où est stockée tout le contexte d'un processus. Son descripteur est placé dans la GDT (Table globale de descripteurs). En tant que segment, les segments d'état de tâche sont référencés par des descripteurs d'état de tâche (TSSD) situés dans la GDT. Structure du TSSInformations statiquesLe TSS peut contenir des informations statiques initialisées lors de la création du processus :
Informations dynamiquesLe TSS contient également des informations qui sont mises à jour à chaque commutation de contexte :
UtilisationSous LinuxSous Linux, à chaque commutation de contexte, le noyau (grâce à la macro "SWITCH_TO") met à jour le TSS par les informations (registres généraux, EIP, drapeaux EFLAGS, etc) du nouveau processus, car il n'existe qu'un TSS par cœur sous Linux. Le TSS est utilisé entre autres par le noyau pour revenir d'un appel système ou encore pour la gestion de l'exception "erreur double" (le processeur, ne pouvant plus faire confiance à ses registres, utilise le TSS). Voir aussiArticles connexesInformation related to Segment d'état de tâche |