I THREAD O PROCESSI LEGGERI

Documenti analoghi
Il Concetto di Processo

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

Introduzione al Multithreading

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

I Processi. Il Concetto di Processo

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

Esercitazione n.1 24 Ottobre Obiettivi:

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

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Processi e thread. Concetto di processo

Capitolo 5: I thread

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

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

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

Il Sistema Operativo

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

Corso di Laboratorio di Sistemi Operativi

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

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

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

ACSO Programmazione di Sistema e Concorrente

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

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

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

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

Modi di esecuzione user / kernel

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

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

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

I THREAD O PROCESSI LEGGERI Generalità

Scheduling della CPU

LA GESTIONE DELLA I/O

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

2. Nucleo del sistema operativo (la gestione dei processi)

Processi. Laboratorio Software C. Brandolese

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Sistema operativo & file system 1

Processo - generalità

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

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

Lab 1: Java Multithreading

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

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

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi ed interazione con HW e CAD

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

I Processi nel SO UNIX

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

Il Sistema Operativo. Informatica Sistema Operativo 1

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

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

I SISTEMI OPERATIVI (1)

Macchine Astratte. Luca Abeni. February 22, 2017

Architetture della memoria

Lo scheduler di UNIX (1)

Organizzazione di un SO monolitico

Sistemi Operativi (modulo di Informatica II) I thread

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Introduzione ai sistemi operativi

Struttura interna del sistema operativo Linux

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

Pronto Esecuzione Attesa Terminazione

I Processi nel Sistema Operativo Unix

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

Sistemi Operativi e informatica 1

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Calcolo numerico e programmazione. Sistemi operativi

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

Supporto al Sistema Operativo

Esercitazione 11. Esercitazione di riepilogo

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

Sistemi Operativi. Lezione 4 I processi: implementazioni

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

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Input/Output (Cap. 7, Stallings)

GESTIONE DEI PROCESSI

Il software: Istruzioni per il computer

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Architettura hardware

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Architettura degli elaboratori Docente:

Corso di Sistemi di Elaborazione delle informazioni

Componenti e connessioni. Capitolo 3

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

Il software di sistema

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

Elena Baralis 2007 Politecnico di Torino 1

Il memory manager. Gestione della memoria centrale

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

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

Struttura Logica del S.O:

6 Il Sistema Operativo Indice. 6.2 Classificazione e definizioni. Livello macchina virtuale Generalità Livello macchina virtuale - 1

Sistema operativo. Interazione con il SO

Processi. Concorrenza. Processi e programmi

Sistema Operativo (Software di base)

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Transcript:

I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine (descrittore di processo, Program counter, Stato dei registri, Codice, Dati ecc.) e risorse possedute (file aperti, dispositivi di I/O ecc.) Ogni processo ha un proprio spazio di indirizzamento (cioè due processi non condividono nessuna area di memoria) Ogni operazione di CONTEXT SWITCH (salvataggio del contesto del processo che viene sospeso e ripristino di quello che inizia o riprende la sua esecuzione) richiede tempo di CPU sprecato (overhead)

Thread o processi leggeri (LWP Light Weight Process) Flusso di controllo che può essere attivato in parallelo ad altri Thread nell ambito di uno stesso processo (nell esecuzione dello stesso programma) Segmento di codice (una funzione) che viene eseguito in modo sequenziale all interno di un processo (pesante). Ogni thread viene eseguito in parallelo agli altri thread mandati in esecuzione dallo stesso processo e condividono lo spazio di indirizzamento e quindi le strutture dati. Multithreading : molteplicità di flussi in esecuzione all interno di un processo pesante.

Per evolvere parallelamente agli altri thread o processi che si contendono la CPU i Thread mantengono comunque un TCB (Thread Control Blok) che contiene Un identificatore di Thead (ID) Un Program counter Un insieme di registri Uno stato di esecuzione (running, ready, blocked) Uno stack di esecuzione Uno spazio di memoria per le variabili locali NON HANNO una loro area dove è presente IL CODICE del programma in quanto condividono quella del processo che li genera così come ne condividono l area DATI

l utilizzo dei Thread offre la possibilità di sfruttare al meglio architetture multiprocessore Le operazioni di context switch sono più semplici e veloci (condividendo i dati sono meno le informazioni da memorizzare e ripristinare) Un segmento di codice si dice thread-safe, se è in grado di supportare l esecuzione da parte di più thread, garantendo che nessuno possa accedere a dati inconsistenti (cioè durante il loro aggiornamento)

Creazione distruzione Errore Codice Condivisione Mutua esclusione Prestazioni Concorrenza processi Allocazione, copia e deallocazione di grandi quantità di memoria non può danneggiare altri processi Un processo può modificare il proprio codice mediante il cambiamento di eseguibile E onerosa e deve essere implementata dal programmatore E garantita automaticamente dall isolamento dei vari processi limitate dall overhead di gestione Limitata dalla difficoltà di comunicazione elevate elevate Thread Richiedono solo la creazione di uno stack per il thread può danneggiare altri thread e l intero processo a cui appartiene il codice è fissato e presente nella sezione text del processo cui appartiene E automatica perchè tutti i thread condividono la memoria del processo cui appartengono Deve essere realizzata dal programmatore mediante semafori ecc.

MS Dos Processo singolo Thread singolo UNIX Processi multipli Thread singolo per processo JAVA runtime engine Processo singolo Thread multipli per processo MACH,LINUX Processi multipli Thread multipli per processo

User Level Vengono implementati grazie ad apposite librerie (thread package) che contengono funzioni per creare, terminare, sincronizzare, effettuare lo scheduling ed il cambio di contesto (il nucleo gli ignora e gestisce solamente i processi) VANTAGGI: Efficienza di gestione (tempi di switching molto ridotti non richiedendo chiamate al kernel) Possono essere implementati su qualsiasi S.O.(alto grado di portabilità tra macchine e sistemi diversi) SVANTAGGI: Se un thread effettua una system call (ad es, per motivi di I/O) oltre a sospendere se stesso provoca la sospensione del processo che lo ha generato (quindi anche di tutti gli altri thread) Non è possibile sfruttare il parallelismo fisico in architetture multiprocessore(interni ad un processo e quindi assegnati ad un unico processore)

Kernel Level (Linux,Unix e Windows) La gestione è affidata al kernel tramite chiamate di sistema, vengono gestiti come tutti gli altri processi,schedulati, sospesi, risvegliati, gli vengono assegnate risorse di sistema ecc. VANTAGGI: se un thread si sospende continuano ad evolversi altri thread generati dallo stesso processo (sono tra loro schedulati in modo autonomo) In architetture multiprocessor si può sfruttare al massimo il parallelismo fisico SVANTAGGI: Tempi lunghi impiegati dal kernel per il cambio di contesto, reso ancora più complesso in quanto deve gestire sia processi che thread

Soluzione mista (Solaris) Permette di creare dei thread a livello utente che devono essere preventivamente definiti a livello di kernel e lasciano all utente le politiche di scheduling e di sincronizzazione. VANTAGGI: se un thread si sospende questo non blocca necessariamente altri thread generati dallo stesso processo. Thread della stessa applicazione possono essere eseguiti in parallelo su processori diversi.

Ciclo di vita di un Thread Idle Ready Sleeping Ranning Blocked Waiting Dead

Utilizzo dei Thread Permettono di organizzare l esecuzione di lavori con attività foreground (interattivo) e in background (lavoro nascosto) Nei fogli elettronici vengono utilizzati per le procedure di ricalcolo automatico, nei word processor per effettuare il controllo ortografico del documento che si stà creando Permettono di realizzare delle attività asincrone, quali le operazioni di garbage collection nella gestione della RAM oppure procedure di salvataggio automatico di dati (backup schedulati)