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

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

Trasparenze del Corso di Sistemi Operativi

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

I THREAD O PROCESSI LEGGERI

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

Il Concetto di Processo

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

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

Introduzione al Multithreading

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

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

Trasparenze del Corso di Sistemi Operativi

Threads: 1. Concetti di base 2. Threads in sistemi operativi attuali (NT/UNIX)

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

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

Capitolo 5: I thread

Trasparenze del Corso di Sistemi Operativi

I Processi. Il Concetto di Processo

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

Sistemi Operativi (modulo di Informatica II) I thread

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

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

I thread. Motivazioni e definizione. Modelli di programmazione multithread. Librerie per i thread. Problemi nella programmazione multithread

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

Supporto al Sistema Operativo

Modelli di programmazione parallela

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

Processi e thread. Concetto di processo

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Opera=vi

Il Sistema Operativo

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

ACSO Programmazione di Sistema e Concorrente

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

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

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

La torta caprese. Ingredienti. Istruzioni: 5 uova 8 cucchiai di zucchero 1/8kg di burro ¼kg di mandorle dolci 100gr di cioccolato fondente

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO

I THREAD O PROCESSI LEGGERI Generalità

Processi. Laboratorio Software C. Brandolese

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

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

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Lab 1: Java Multithreading

Posix Threads: l evoluzione dei processi UNIX

Corso di Laboratorio di Sistemi Operativi

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

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

Introduzione ai sistemi operativi

Downloading and Installing Software Socio TIS

Le risorse. Alcune definizioni

Pronto Esecuzione Attesa Terminazione

Organizzazione di un SO monolitico

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

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Processi, Threads e Agenti

SISTEMI OPERATIVI. I thread. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Sistemi Operativi (modulo di Informatica II) I processi

La gestione dei processi in Minix

Esercitazione n.1 24 Ottobre Obiettivi:

I Sistemi Operativi. Introduzione ai Sistemi Operativi (parte A) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Cosa e un processo? Stato del processo

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati

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

GESTIONE DEI PROCESSI

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base

Parte 2: Gestione dei Processi. 4.1 Concetto di Processo Stato del processo

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling

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

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a IX - 1

2.2 Scheduling in Linux

Sistemi a processori multipli

1.5: Gestione dei Processi e della CPU

INTRODUZIONE AD OMNET++

Trasparenze del Corso di Sistemi Operativi

Sistemi Operativi. Introduzione. C.d.L. in Informatica (laurea triennale) Anno Accademico Dipartimento di Matematica e Informatica Catania

Architettura di un sistema operativo

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems

Sicurezza del File System

IL GIOVANE HOLDEN FRANNY E ZOOEY NOVE RACCONTI ALZATE LARCHITRAVE CARPENTIERI E SEYMOUR INTRODUZIONE BY JD SALINGER

Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla

Sistemi Operativi SCHEDULING DELLA CPU

Capitolo 3 -- Silberschatz

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Sistema di protezione

Sistemi di Elaborazioni delle Informazioni I

2.3.2 Servire gli interrupt System call 47 Riepilogo 50 Domande 51 Problemi 51 Note bibliografiche 52

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

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

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

Il supporto al Sistema Operativo

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

CdL MAGISTRALE in INFORMATICA A.A corso di SISTEMI DISTRIBUITI. I Processi. buffering gestione failure indirizzamento processi naming

Transcript:

Dai processi... I processi finora studiati incorporano due caratteristiche: s 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 1 2...ai thread Esempi di thread threads program counter 1 1 1 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 (a) (b) 3 4

i e : quattro possibili scenari Modello multithread dei processi Single-ed Model Multithreaded Model one process one thread one process multiple threads Address Address multiple processes one thread per process multiple processes multiple threads per process 5 6 Condivisione di risorse tra i thread Risorse condivise e private dei thread Tutti i thread di un processo accedono alle stesse risorse condivise er process items er thread items Address rogram counter Global variables Registers Open files Child processes State ending alarms Signals and signal handlers Accounting information 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) 7 8

Condivisione di risorse tra thread (Cont.) Esempi di applicazioni multithread Svantaggi: Maggiore complessità di progettazione e programmazione i processi devono essere pensati paralleli minore information hiding sincronizzazione tra i thread 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 nation, or any nation years ago, our fathers so conceived and so brought forth upon this dedicated, can long continent a new nation: endure. We are met on conceived in liberty, a great battlefield of and dedicated to the that war. proposition that all We have come to men are created equal. dedicate a portion of Now we are engaged that field as a final in a great civil war resting place for those testing whether that 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 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 Keyboard Disk 9 10 Esempi di applicazioni multithread (cont.) Stati e operazioni sui thread Task intrinsecamente paralleli: vengono implementati ed eseguiti più efficientemente con i thread. Es: file/http/dbms/ftp server,... Web server process Dispatcher 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,... Worker thread Web page cache blocco: un thread si ferma, e l esecuzione passa ad un altro thread/processo. uò 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. Network connection Meccanismi per la sincronizzazione tra i thread (semafori, thread_wait): indispensabili per l accesso concorrente ai dati in comune 11 12

Implementazioni dei thread: Livello utente vs Livello Level -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 OSIX 1003.1c (pthread) Run-time system lo scheduling può essere studiato specificatamente per l applicazione 13 14 Level (Cont.) Level Svantaggi: -level thread (KLT): il kernel gestisce direttamente i thread. operazioni sono ottenute attraverso system call. Vantaggi: Le non c è scheduling automatico tra i thread non c è prelazione dei thread: se un thread non passa il controllo esplicitamente monopolizza la CU (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 oco utile per processi I/O bound, come file server 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: thread CMU, Mac OS 9, alcune implementazioni dei thread OSIX 15 Esempi: molti Unix moderni, OS/2, Mach. 16

Implementazioni ibride ULT/KLT Sistemi ibridi: permettono sia thread livello utente che kernel. Implementazioni ibride (cont.) Vantaggi: s Library s Library 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à (a) ure user-level (b) ure kernel-level (c) Combined Es: Solaris 2 (thread/pthread e LW), Linux (pthread e cloni), Mac OS X, Windows NT,... -level thread -level thread or 17 18 pop-up I thread pop-up sono thread creati in modo asincrono da eventi esterni. Existing thread op-up thread created to handle incoming message Molto utili in contesti distribuiti, e per servizio a eventi esterni Bassi tempi di latenza (creazione rapida) Complicazioni: dove eseguirli? in user : safe, ma in quale processo? uno nuovo? crearlo costa... in kernel : veloce, semplice, ma delicato (thread bacati possono fare grossi danni) Incoming message Implementato in Solaris Network (a) (b) (a) prima; (b) dopo aver ricevuto un messaggio esterno da gestire 19

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