© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P ORCU BOZZA: 31/01/2016
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Sommario Processo e Immagine Thread LightWeight Process Realizzazione di Thread Implementazione di Thread Multitasking e Multithreading Stati di un Thread 2
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 Thread T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread 3
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Processo e Immagine 4 Processo Programma in esecuzione (su un processore o CPU) cui è associato: 1.Un descrittore di processo (PCB). 2.Un'area di memoria RAM contenente istruzioni e dati detta spazio di indirizzamento del processo. 3.Un insieme di risorse HW e SW da esso utilizzate. L'insieme dei dati contenuti nel PCB e nello spazio di indirizzamento prende il nome di immagine del processo.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Immagine del Processo 5 PID PC Altre Info ProcessoProcesso Stato PCB Istruzioni Dati Spazio di indirizzamento Risorsa 1 Risorsa 2 Risorsa N Risorse Immagine
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Thread 6 Porzione di processo parallelizzabile. Segmento di codice eseguibile in parallelo con altri thread dello stesso processo e dichiarato come tale dal programmatore. A ogni thread sono associati: Una struttura dati detta descrittore di thread (TCB, Thread Control Block) simile al PCB. Uno spazio di indirizzamento e un insieme di risorse condivise con gli altri thread dello stesso processo.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread LightWeight Process 7 Un thread è detto anche processo leggero (LightWeight Process) perché meno oneroso da gestire per il sistema rispetto a un processo standard. Infatti: Il thread è molto più veloce da eseguire. La memoria RAM e le risorse associate sono condivise con altri thread mentre processi diversi necessitano di memoria e risorse specifiche. L'operazione di context switching per il passaggio a un nuovo thread è più semplice perché i dati da salvare e ripristinare sono minori e condivisi.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Thread n Thread e Processo 8 Thread 2 Thread 1 ProcessoProcesso … Thread 2 Thread n Codice Processo
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Thread n Thread e Risorse 9 TID Altre Info Thread 1 TCB Istruzioni Dati Spazio di indirizzamento Risorsa 1 Risorsa 2 Risorsa N Risorse Condivise da Thread nello stesso processo Thread 3 Thread 2
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 Thread T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Realizzazione di Thread 10
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Implementazione di Thread Un thread può essere realizzato in due modalità: User level (livello utente) Il Thread è gestito direttamente dal processo che lo ha creato e il kernel ne ignora l’esistenza. Kernel level (livello kernel) Il Thread è gestito dal kernel utilizzando lo Scheduler. 11
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Thread User-Level Il processo gestisce i thread utilizzando librerie SW (thread package) contenti le funzioni per la loro gestione. +Efficienza di gestione: tempi di switching ridotti perché non si richiama il kernel +Implementabili su qualunque Sistema Operativo -Se un Thread effettua una System Call blocca se stesso, il processo e tutti gli altri thread perché visti come entità unica dal kernel -Non eseguibile in vero parallelismo 12
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Thread Kernel-Level Il kernel utilizza uno Scheduler che riconosce e gestisce opportunamente i Thread assieme ai processi con un modello a stati e opportuni algoritmi. +Eseguibile in parallelismo reale su architetture multiprocessore +Una System Call non blocca il processo -Efficienza di gestione: tempi di switching maggiori e schedulazione più complessa per la compresenza di Thread e processi 13
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Multitasking e Multithreading (1) Un Sistema operativo, in base al supporto di processi e Thread si definisce: Multitasking Può eseguire più processi in contemporanea. Multithreading Può eseguire più Thread in contemporanea all’interno dello stesso processo. Non è detto che Processi e Thread in contemporanea siano eseguiti fisicamente in parallelo: dipende dalle caratteristiche HW e SW del PC e dalla sua gestione. 14
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Multitasking e Multithreading (2) 15
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread Stati di un Thread 16