Estratto del documento

Thread nei sistemi operativi

In alcuni sistemi operativi, il sistema fornisce il supporto per definire sequenze di controllo multiple all'interno di un singolo processo. Queste sequenze di controllo sono solitamente chiamate thread. Questo tipo di approccio ha dei vantaggi:

  • Tempo di risposta: un’applicazione multithread permette all’utente di interagire sempre con essa anche se una parte è bloccata (ad esempio in attesa di input).
  • Condivisione delle risorse: i thread condividono la memoria e le risorse del processo di appartenenza. Poiché un'applicazione può avere più thread, il risparmio è notevole.
  • Economia: normalmente creare un processo è costoso, poiché un thread condivide parte delle risorse di un processo, la sua creazione è più veloce.
  • Uso di più unità di elaborazione.

Un thread è simile a un processo ma richiede meno risorse da parte del sistema operativo. Per ogni thread abbiamo:

  • Thread ID (identificativo)
  • Program Counter
  • Registri
  • Stack

Un insieme di thread lanciati dallo stesso processo condividono con il processo che li ha generati la stessa area di dati e le stesse risorse. Essendo il thread più leggero, la fase di context switch sarà più rapida.

Thread a livello utente

La gestione dei thread è fatta a livello utente tramite librerie, e il sistema operativo ignora la presenza dei thread. I thread sono gestiti da un processo a runtime in modalità utente (lo scheduling avviene senza intervento del kernel).

Vantaggi:

  • La commutazione fra i thread non richiede l’intervento del nucleo.
  • Lo scheduling dei processi è indipendente da quello del nucleo.
  • Lo scheduling può essere ottimizzato per la specifica applicazione.
  • Sono indipendenti dal sistema operativo in quanto implementati come libreria.

Problemi:

  • Le chiamate di sistema sono bloccanti (si blocca tutto il processo e non il singolo thread).
  • Non si sfrutta un eventuale parallelismo hardware.

Thread a livello del nucleo

Sono gestiti direttamente dal sistema operativo ed a ciascuna funzione corrisponde una system call.

Vantaggi:

  • In un sistema multiprocessore il nucleo può assegnare thread dello stesso processo a CPU diverse.
  • In caso di chiamate di sistema si blocca il singolo thread, non l’intero processo.

Problemi:

  • La commutazione è costosa (non vale più uno dei vantaggi dell’uso dei thread).

Problemi di schedulazione

Esempio:

  • Processo A: 1 thread
  • Processo B: 100 thread

Thread utente: A e B ottengono lo stesso tempo macchina. Ogni thread di B ottiene un centesimo dell’unico di A. Thread di sistema: Ogni thread ottiene lo stesso tempo. A ottiene un centesimo del tempo di B.

Modelli di programmazione multithread

Molti a uno

Molti thread...

Anteprima
Vedrai una selezione di 1 pagina su 3
Sistemi operativi - Thread nei sistemi operativi Pag. 1
1 su 3
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ilario.pirini di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Lombardi Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community