Uno Task state segment (TSS) è una struttura specifica dei processori della famiglia x86 dove si trova memorizzato il contesto di un processo. Il suo descrittore si trova nella Global Descriptor Table (GDT).

In quanto segmenti, i segmenti di stato sono referenziati da descrittori di stato di processo (task state segment descriptor) (TSSD) situati nella GDT.

Struttura di un TSS

Il TSS contiene vari tipi di informazioni: I registri generali EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI I registri di segmento CS, ES, SS, DS, FS, GS Il registro EFLAGS Il registro EIP Il registro CR3 Il registro LDTR I selettori del TSS del processo che era precedentemente eseguito L'I/O map base address e l'I/O map I puntatori agli stack dei livelli di privilegio 0,1,2

offset 31-16 15-0 0x64 IOPB offset riservato 0x60 riservato LDTR 0x5C riservato GS 0x58 riservato FS 0x54 riservato DS 0x50 riservato SS 0x4C riservato CS 0x48 riservato ES 0x44 EDI 0x40 ESI 0x3C EBP 0x38 ESP 0x34 EBX 0x30 EDX 0x2C ECX 0x28 EAX 0x24 EFLAGS 0x20 EIP 0x1C CR3 0x18 riservato SS2 0x14 ESP2 0x0C riservato SS1 0x10 ESP1 0x08 riservato SS0 0x04 ESP0 0x00 riservato LINK

Utilizzo Linux

Sotto Linux, a ogni commutazione di contesto, il kernel (grazie alla macro "SWITCH_TO") aggiorna il TSS con le informazioni (registri generali, EIP, EFLAGS, ecc) del nuovo processo.

Il TSS è utilizzato tra l'altro dal kernel per ritornare da una chiamata di sistema o per la gestione dell'eccezione "errore doppio" (il processore, non potendo fare affidamento sui suoi registri, usa il TSS).

TSS nell'architettura x86-64

L'architettura x86-64 non supporta il cambio di contesto hardware, tuttavia il TSS può essere ancora utilizzato in una macchina utilizzante la modalità a 64 bit. In questa modalita il TSS viene utilizzato per memorizzare:

Lo stack pointer per ogni livello di privilegio. L'indirizzo del puntatore all' Interrupt Stack Table Offset della bitmap dei permessi IO

Il task register viene espanso per contenere indirizzi a 64 bit.

Collegamenti esterni

Categoria:Intel Categoria:Sistema operativo