Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Ingegneria
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Antonino Mazzeo » 20.Dai Processi ai Thread


Sommario

  • Processi e Thread
  • Thread al livello d’utente e al livello del nucleo
  • Modelli di programmazione multithread

Processi e Thread

  • L’astrazione di Processo incorpora due concetti importanti:
    • Concorrenza: ogni processo ha un flusso di controllo
    • Protezione: ogni processo definisce un proprio spazio di indirizzamento
  • Threads
    • Concetto chiave: separazione tra concorrenza e protezione
    • Un thread è un flusso di controllo sequenziale di un programma
    • Ha il suo insieme di registri, il suo stack, non ha una propria area heap e/o area dati
    • Un processo definisce lo spazio di indirizzamento che può essere condiviso da più threads

Thread

  • Vantaggi nell’uso dei thread:
    • La creazione/terminazione di un thread è molto più efficiente della creazione di un processo
    • La comunicazione tra threads è molto più semplice ed efficiente di quelle tra processi
    • Il Context switching tra threads ha decisamente un minor overhead di quello tra processi
  • Stati di un Thread
I diversi tipi di process/thread

I diversi tipi di process/thread

Stati di un thread

Stati di un thread


Thread al livello d’utente

  • Gestiti come uno strato separato sopra il Kernel, e realizzati tramite una libreria di funzioni per la creazione, lo scheduling e la gestione, senza alcun intervento diretto del nucleo
  • Vantaggi
    • Minore overhead per il context switch (che non richiede il passaggio in kernel mode);
    • Lo scheduler dei thread è indipendente da quello dei processi e le applicazioni sono portabili.
  • Svantaggi
    • Quando un thread invoca una system call (bloccante), tutti i thread di quel processo si bloccano;
    • In generale, nelle architetture multiprocessore, non c’è vantaggio nell’utilizzo del multithreading: il kernel assegna un processo per ogni processore.
Thread al livello d’utente

Thread al livello d'utente


Thread al livello Kernel e approccio combinato

  • Gestiti direttamente dal sistema operativo.
    • Il kernel gestisce le informazioni di contesto sia dei thread sia dei processi
    • Lo scheduling è a livello thread
  • Approcci combinati
    • Più thread al livello d’utente corrispondono a ad un numero inferiore o uguale di thread al livello del nucleo;
    • La creazione del thread avviene nello spazio utente;
    • Il grosso dello scheduling e sincronizzazione è fatta nello spazio utente (es. Solaris)
Approccio combinato

Approccio combinato


Modelli di programmazione multithread

  • Modello da molti a uno
    • Fa corrispondere molti thread al livello d’utente a un singolo thread al livello del nucleo.
    • Usato su sistemi che non gestiscono i thread al livello del nucleo.
  • Modello da uno a uno
    • Mette in corrispondenza ciascun thread del livello d’utente con un thread del livello del nucleo.
    • Esempi:Windows 95/98/NT/2000, OS/2
  • Modello da molti a molti
    • Mette in corrispondenza più thread del livello d’utente con un numero minore o uguale di thread del livello del nucleo.
    • Esempi: Solaris 2, Windows NT/2000

Prossima lezione

Esercitazione: Posix Threads

I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap. 2, par. 10)

W. Stallings, “Operating Systems : Internals and Design Principles (5th Edition) ”, Prentice Hall (Cap. 4)

Threads

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion