Un thread non è altro che una funzione (nel senso che tale termine
ha nel linguaggio C) che viene eseguita in maniera concorrente ad
altre funzioni, nell'ambito di un processo. Tutti i thread creati
nell'ambito di un processo ne condividono lo spazio di
indirizzamento. In aggiunta a questo ogni thread eredita dal
processo che lo crea i seguenti dati:
Descrittori dei file,
Handler dei Signal,
Directory Corrente,
ID di utente e di gruppo.
Ogni thread possiede però un suo :
ID del thread,
Contesto del processore (Stack Pointer, Registri, Program Counter),
Stack,
Variabile errno,
Maschera dei Signal,
Priorità.
Come avviene sempre nella programmazione il supporto per determinate
caratteristiche all'interno di un sistema operativo viene dato
essenzialmente tramite due meccanismi: tipi di dato e funzioni del sistema operativo. Nei prossimi paragrafi introdurremo
quindi con gradualità sia alcuni dei nuovi tipi di dato che alcune
delle nuove funzioni implicate nella gestione dei thread.