Dai processi... I processi finora studiati incorporano due caratteristiche:



Documenti analoghi
Thread. Dai processi ai thread. Esempi di thread. I processi finora studiati incorporano due caratteristiche:

Trasparenze del Corso di Sistemi Operativi

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Il Concetto di Processo

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Opera=vi

Processi e Thread. Concetto di processo. Operazioni sui processi. Stati dei processi. Threads. Schedulazione dei processi

Capitolo 5: I thread

Pronto Esecuzione Attesa Terminazione

Sistemi Operativi (modulo di Informatica II) I processi

GESTIONE DEI PROCESSI

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Architettura di un sistema operativo

La Gestione delle risorse Renato Agati

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

I THREAD O PROCESSI LEGGERI Generalità

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Corso di Sistemi di Elaborazione delle informazioni

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Processi e Thread. Scheduling (Schedulazione)

Approccio stratificato

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Corso di Linguaggi di Programmazione

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

I THREAD O PROCESSI LEGGERI

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. Trasparenze del Corso di. Processi e Thread. Multiprogrammazione. Il Concetto di Processo. Università di Udine.

Posix Threads: l evoluzione dei processi UNIX

Scheduling della CPU:

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Introduzione ai sistemi operativi

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Trasparenze del Corso di Sistemi Operativi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Capitolo 3 -- Silberschatz

Il Sistema Operativo (1)

Lo scheduler di UNIX (1)

L API socket ed i daemon

Processi. Laboratorio Software C. Brandolese

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Esempio: aggiungere j

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Introduzione alle applicazioni di rete

Organizzazione Monolitica

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Introduzione ai thread

Il Sistema Operativo

Algoritmi di scheduling

Processo - generalità

Supporto al Sistema Operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Gestione della memoria centrale

Hardware di un Computer

Java Virtual Machine

Trasparenze del Corso di Sistemi Operativi

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Scheduling della CPU

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Lo scheduling. Tipici schedulatori

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Telematica II 17. Esercitazione/Laboratorio 6

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Architettura di un sistema di calcolo

File system II. Sistemi Operativi Lez. 20

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D

CAPITOLO 5 - Sistemi Operativi Moderni

Introduzione alla Virtualizzazione

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

Scheduling della CPU

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Il supporto al Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Transcript:

Threads 1

Dai processi... I processi finora studiati incorporano due caratteristiche: Unità di allocazione risorse: codice eseguibile, dati allocati staticamente (variabili globali) ed esplicitamente (heap), risorse mantenute dal kernel (file, I/O, workind dir), controlli di accesso... Unità di esecuzione: un percorso di esecuzione attraverso uno o più programmi: stack di attivazione (variabili locali), stato (running, ready, waiting,...), priorità, parametri di scheduling,... Queste due componenti sono in realtà indipendenti 2

...ai thread threads program counter Un thread (o processo leggero, lightweight process) è una unità di esecuzione: program counter, insieme registri stack del processore stato di esecuzione Un thread condivide con i thread suoi pari task una unità di allocazione risorse: il codice eseguibile i dati le risorse richieste al sistema operativo un task = una unità di risorse + i thread che vi accedono text segment data segment 3

Esempi di thread Process 1 Process 1 Process 1 Process space Thread Thread space (a) (b) 4

Processi e Thread: quattro possibili scenari one process one thread one process multiple threads multiple processes one thread per process multiple processes multiple threads per process 5

Modello multithread dei processi Single-Threaded Process Model Process Control Block Stack Multithreaded Process Model Thread Thread Thread Thread Control Block Thread Control Block Thread Control Block Address Space Stack Process Control Block Stack Stack Stack Address Space Stack Stack Stack 6

Risorse condivise e private dei thread Tutti i thread di un processo accedono alle stesse risorse condivise Per process items Address space Global variables Open files Child processes Pending alarms Signals and signal handlers Accounting information Per thread items Program counter Registers Stack State 7

Condivisione di risorse tra i thread Vantaggi: maggiore efficienza Creare e cancellare thread è più veloce (100 1000 volte): meno informazione da duplicare/creare/cancellare (e a volte non serve la system call) Lo scheduling tra thread dello stesso processo è molto più veloce che tra processi Cooperazione di più thread nello stesso task porta maggiore throughput e performance (es: in un file server multithread, mentre un thread è bloccato in attesa di I/O, un secondo thread può essere in esecuzione e servire un altro client) 8

Condivisione di risorse tra thread (Cont.) Svantaggi: Maggiore complessità di progettazione e programmazione i processi devono essere pensati paralleli minore information hiding sincronizzazione tra i thread gestione dello scheduling tra i thread può essere demandato all utente Inadatto per situazioni in cui i dati devono essere protetti Ottimi per processi cooperanti che devono condividere strutture dati o comunicare (e.g., produttore consumatore, server,... ): la comunicazione non coinvolge il kernel 9

Esempi di applicazioni multithread Lavoro foreground/background: mentre un thread gestisce l I/O con l utente, altri thread operano sui dati in background. Spreadsheets (ricalcolo automatico), word processor (reimpaginazione, controllo ortografico,... ) Elaborazione asincrona: operazioni asincrone possono essere implementate come thread. Es: salvataggio automatico. Four score and seven years ago, our fathers brought forth upon this continent a new nation: conceived in liberty, and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battlefield of that war. We have come to dedicate a portion of that field as a final resting place for those who here gave their lives that this nation might live. It is altogether fitting and proper that we should do this. But, in a larger sense, we cannot dedicate, we cannot consecrate we cannot hallow this ground. The brave men, living and dead, who struggled here have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember, what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us, that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion, that we here highly resolve that these dead shall not have died in vain that this nation, under God, shall have a new birth of freedom and that government of the people by the people, for the people Keyboard Disk 10

Esempi di applicazioni multithread (cont.) Task intrinsecamente paralleli: vengono implementati ed eseguiti più efficientemente con i thread. Es: file/http/dbms/ftp server,... Web server process Dispatcher thread Worker thread space Web page cache space Network connection 11

Stati e operazioni sui thread Stati: running, ready, blocked. Non ha senso swapped o suspended Operazioni sui thread: creazione (spawn): un nuovo thread viene creato all interno di un processo (thread_create), con un proprio punto d inizio, stack,... blocco: un thread si ferma, e l esecuzione passa ad un altro thread/processo. Può essere volontario (thread_yield) o su richiesta di un evento; sblocco: quando avviene l evento, il thread passa dallo stato blocked al ready cancellazione: il thread chiede di essere cancellato (thread_exit); il suo stack e le copie dei registri vengono deallocati. Meccanismi per la sincronizzazione tra i thread (semafori, thread_wait): indispensabili per l accesso concorrente ai dati in comune 12

Implementazioni dei thread: Livello utente vs Livello Process Thread Process Thread space space Run-time system Thread table Process table Process table Thread table 13

Level Thread -level thread (ULT): stack, program counter, e operazioni su thread sono implementati in librerie a livello utente. Vantaggi: efficiente: non c è il costo della system call semplici da implementare su sistemi preesistenti portabile: possono soddisfare lo standard POSIX 1003.1c (pthread) lo scheduling può essere studiato specificatamente per l applicazione 14

Level Thread (Cont.) Svantaggi: non c è scheduling automatico tra i thread non c è prelazione dei thread: se un thread non passa il controllo esplicitamente monopolizza la CPU (all interno del processo) system call bloccanti bloccano tutti i thread del processo: devono essere sostituite con delle routine di libreria, che blocchino solo il thread se i dati non sono pronti (jacketing). L accesso al kernel è sequenziale Non sfrutta sistemi multiprocessore Poco utile per processi I/O bound, come file server Esempi: thread CMU, Mac OS 9, alcune implementazioni dei thread POSIX 15

Level Thread -level thread (KLT): il kernel gestisce direttamente i thread. operazioni sono ottenute attraverso system call. Vantaggi: Le lo scheduling del kernel è per thread, non per processo un thread che si blocca non blocca l intero processo Utile per i processi I/O bound e sistemi multiprocessor Svantaggi: meno efficiente: costo della system call per ogni operazione sui thread necessita l aggiunta e la riscrittura di system call dei kernel preesistenti meno portabile la politica di scheduling è fissata dal kernel e non può essere modificata Esempi: molti Unix moderni, OS/2, Mach. 16

Implementazioni ibride ULT/KLT Sistemi ibridi: permettono sia thread livello utente che kernel. Threads Library Space Space Threads Library Space Space Space Space P P P P (a) Pure user-level (b) Pure kernel-level (c) Combined -level thread -level thread Processor P 17

Implementazioni ibride (cont.) Vantaggi: tutti quelli dei ULT e KLT alta flessibilità: il programmatore può scegliere di volta in volta il tipo di thread che meglio si adatta Svantaggio: portabilità Es: Solaris 2 (thread/pthread e LWP), Linux (pthread e cloni), Mac OS X, Windows NT,... 18

Thread pop-up I thread pop-up sono thread creati in modo asincrono da eventi esterni. Process Existing thread Pop-up thread created to handle incoming message Incoming message Network (a) (b) (a) prima; (b) dopo aver ricevuto un messaggio esterno da gestire 19

Molto utili in contesti distribuiti, e per servizio a eventi esterni Bassi tempi di latenza (creazione rapida) Complicazioni: dove eseguirli? in user space: safe, ma in quale processo? uno nuovo? crearlo costa... in kernel space: veloce, semplice, ma delicato (thread bacati possono fare grossi danni) Implementato in Solaris

Processi e Thread di Windows 2000 Nel gergo Windows: Job: collezione di processi che condividono quota e limiti Processo: Dominio di allocazione risorse (ID di processo, token di accesso, handle per gli oggetti che usa). Creato con CreateProcess con un thread, poi ne può allocare altri. Thread: entità schedulata dal kernel. Alterna il modo user e modo kernel. Doppio stack. Creato con CreateThread. Fibra (thread leggero): thread a livello utente. Invisibili al kernel. 20

Job, processi e thread in Windows 2000 Job Address space Thread Process stack Process handle table mode thread stack P T T Access token T T P 21