Thread Flashcards
Cosa è un thread?
Un thread è un flusso di esecuzione indipendente (traccia) all’interno di un processo.
Quali sono i vantaggi del multithreading?
Ottenere parallelismo nei flussi di esecuzione.
Gestire chiamate bloccanti o situazioni di risposta asincrona.
Cos’è il multithreading?
È la capacità di un sistema operativo di supportare più thread per ogni processo.
Quali risorse possiede un thread?
Un thread non possiede risorse proprie, utilizza quelle del processo. Per questo è detto Light Weight Process (LWP).
Quali informazioni sono contenute nel Thread Control Block (TCB)?
Stato del thread, priorità e altre informazioni necessarie per la schedulazione.
Quali vantaggi offrono i thread rispetto ai processi?
Tempo di creazione e terminazione inferiore.
Switch tra thread più rapido rispetto ai processi.
Condivisione diretta di memoria e file senza intervento del kernel.
Quali sono gli stati di un thread?
Ready, Running, Blocked.
Cosa succede quando un thread viene bloccato?
Il sistema salva il contesto del thread (Program Counter, Stack Pointer, registri CPU).
Cosa accade quando un thread viene sbloccato?
Il suo stato nel TCB passa da “Blocked” a “Ready” e viene schedulato per l’esecuzione.
Come viene gestita la terminazione di un thread?
Il sistema dealloca le risorse utilizzate dal thread, liberando memoria e registri.
Cosa è un Remote Procedure Call (RPC)?
È la chiamata da parte di un processo a una procedura attiva su un elaboratore diverso.
Cos’è un User Level Thread?
È un thread gestito interamente a livello di libreria utente, trasparente al kernel.
Quali vantaggi offrono gli User Level Threads?
Il cambio di thread avviene all’interno dello spazio di indirizzamento utente, senza richiedere l’intervento del kernel.
Ogni applicazione può ottimizzare la schedulazione in base alle proprie esigenze specifiche.
Le librerie a livello utente possono essere eseguite su tutti i sistemi operativi.
Quali svantaggi hanno gli User Level Threads?
Una chiamata bloccante può bloccare tutti i thread dello stesso processo.
Un singolo processo viene assegnato a un singolo processore, impedendo il multiprocessing a livello di thread
Cos’è un Kernel Level Thread (KLT)?
Un thread gestito interamente dal kernel, secondo un modello uno a uno.