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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 05/10/15 CdL MAGISTRALE in INFORMATICA A.A corso di SISTEMI DISTRIBUITI Modulo 2 > I processi : proprietà e multi-threading Prof. S.Pizzutilo I Processi buffering gestione failure indirizzamento processi naming sincronizzazione processi sicurezza idempotenza comunicazione multidatagram concorrenza encoding/decoding group communication CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti 1

2 I Processi Un processo è un programma in esecuzione identificato univocamente dall identificatore di processo (un intero). Un processo necessita di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O. Il S.O. è responsabile delle attività di gestione dei processi: Creazione e cancellazione di processi. Sospensione e riattivazione di processi. Meccanismi per: sincronizzazione di processi comunicazione fra processi Comunicazione tra processi e Kernel : System Call Le chiamate di sistema definiscono l interfaccia del programmatore verso il S.O. L insieme dei programmi di sistema comunemente disponibili definisce invece l interfaccia utente. Le interfacce del programmatore ed dell utente definiscono il contesto che deve essere supportato dal kernel. Ad esempio, in Unix si hanno, approssimativamente, tre categorie di chiamate di sistema : Manipolazione di file (le stesse chiamate di sistema supportano anche la manipolazione dei dispositivi). Controllo dei processi. Manipolazione dell informazione. 2

3 Controllo dei processi System call per il controllo dei processi: fork crea un nuovo processo execve viene impiegata dopo una fork per rimpiazzare la memoria virtuale di uno dei due processi (generalmente il figlio ) con un nuovo programma exit termina un processo Un padre può attendere (wait) la terminazione di un processo figlio ; wait fornisce il process id (pid) del figlio terminato, così da renderne nota l identità al padre wait3 consente al padre di produrre statistiche sulla performance dei figli Processo zombie: processo terminato dopo il padre. CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti Stati di un processo Ready running waiting pronto ad essere eseguito, ma non in esecuzione in esecuzione in attesa di un evento o di un dato 3

4 Transizioni fra gli stati di un processo NEW Ammissione tra i processi pronti READY! Completamento evento atteso (operazione di I/O ) Allocazione Termina dopo quanto di tempo WAITING! RUNNING! EXIT Rilascio Attesa di un evento (operazione di I/O) Transizioni fra gli stati Il nucleo del SO maschera al processo la evoluzione nel tempo della sua esecuzione eseguendo due operazioni : Salvataggio del contesto del processo ogni volta che viene interrotto Ripristino del contesto quando viene ad esso riassegnata la CPU La struttura dati che contiene le informazioni utili per il salvataggio e il ripristino del contesto è detta descrittore del processo 4

5 Gestione di processi Il SO è responsabile delle seguenti attività in connessione con la gestione dei processi : Creazione e cancellazione dei processi Sospensione e riattivazione dei processi Sincronizzazione dei processi Comunicazione fra processi Il SO (e in particolare il suo nucleo) simula il parallelismo fra processi nel caso in cui sia presente un solo processore. In sistemi con più processori ogni processo è assegnato ad un processore diverso Il comportamento di un singolo processo è caratterizzato elencando la relativa sequenza di istruzioni eseguite. Tale elenco è detto traccia del processo. Il comportamento del processore è caratterizzato mostrando come sono interallacciate le tracce dei diversi processi. Stati dei processi 5

6 Strutture di controllo dei processi Per gestire processi e risorse il SO costruisce tabelle di informazioni relative a ciascuna delle entità che gestisce Processi interlacciati Traccia di A Traccia di B Traccia di C Numero di istruzioni eseguite da ogni processo: al massimo 6 A Indirizzo di inizio del programma allocatore : 100 A Il processo B e s e g u e 4 istruzioni, l ultima delle quali richiede una operazione di I/O B C C 6

7 Strutture di controllo dei processi Elementi tipici di una Process Image (immagine del processo): Programma utente : programma o insieme di programmi che devono essere eseguiti Dati utente : insieme di locazioni per i dati, per la variabili globali o locali, per le costanti Stack di sistema : uno o più stack utilizzati per memorizzare parametri ed indirizzi per le chiamate di procedure Process control block : dati che servono al SO per controllare il processo Identificatori del processo: informazioni sullo stato del processo, informazioni di controllo Determinazione dello stato dei processi Lo stato di un processo è determinato mediante: Strategie di accodamento dei processi in uno stato (Coda dei processi ready e Coda dei processi blocked ) Politiche di gestione (Scheduling e Livelli di priorità) 7

8 Politiche di gestione dei processi Livelli di priorità dei processi Priorità legata al tipo di utente che detiene il processo : Livello utente : processi responsabili dell esecuzione di programmi utente Livello supervisore : processi responsabili di alcune funzioni del SO Livello di I/O : processi di servizio degli interrupt Livello delle eccezioni : processi responsabili della integrità del sistema e processi che gestiscono errori ed eccezioni dovute ad esecuzione non corretta di programmi utente bassa alta Scheduling Il SO alloca le risorse tra le potenziali necessità concorrenti di molti processi. ü Nel caso del processore la risorsa da allocare è il tempo d esecuzione e la tecnica di allocazione è lo scheduling. ü In un sistema multiprogrammato, più processi indipendenti sono mantenuti in memoria e la CPU è assegnata loro dinamicamente. ü necessità di algoritmi di schedulazione dei processi. priorità Politiche di gestione dei processi Algoritmo di scheduling - stabilisce a quali processi assegnare la CPU, per quanto tempo e in quale momento, - deve soddisfare i seguenti requisiti: ü imparzialità: garantire che ogni processo abbia un equa porzione (time-slice ) di tempo di CPU ü efficienza: rendere massimo il throughput (numero di lavori eseguiti nell unità di tempo) ü velocità: minimizzare il tempo di risposta o Turnaround Time (intervallo di tempo tra l invio di un processo e il suo completamento) First Come First Served Semplice strategia di scheduling che tende a favorire i processi processor-bound rispetto a quelli I/O-bound: o quando un processo diventa ready è inserito nella coda ready, o quando il processo al momento in esecuzione è sospeso, il più vecchio processo nella coda ready è selezionato per l esecuzione. 8

9 Algoritmi di scheduling Round Robin Ad ogni processo è assegnato un intervallo di tempo (time slice) costante, detto quanto, per l utilizzo della CPU; non appena termina il quanto di un processo, esso è posto in stato di ready e la CPU è assegnata ad un altro processo. Vantaggio: facile implementazione è sufficiente mantenere la lista dei processi in stato di ready allo scadere del quanto, il processo è messo in coda alla lista Svantaggio: non tiene conto di priorità legate alle caratteristiche dei processi i processi I/O bound sono penalizzati rispetto a quelli CPU bound Problema: fissare la durata del quanto Ø troppo piccolo --> bassa efficienza: la CPU sarà impegnata per gran parte del tempo nel controllo dei frequenti passaggi da un processo ad un altro Ø troppo grande -->bassa velocità: tempi di risposta lunghi Shortest Process Next Il processo con il minor tempo di esecuzione previsto è selezionato come successivo processo da eseguire. Necessità di conoscere a priori i tempi di esecuzione di ciascun processo. Difficile applicabilità a processi interattivi, la cui durata non è nota a priori Algoritmi di scheduling Priority Ad ogni processo viene assegnata una priorità e viene concessa l esecuzione al processo in stato di ready con priorità più alta Le priorità possono essere assegnate: ü staticamente ü dinamicamente : le priorità vengono modificate durante l esecuzione, in base al tipo di processo (I/O bound o CPU bound) Code multiple I processi vengono suddivisi in classi di diversa priorità e l algoritmo utilizza diverse code di processi in stato di ready, una per ogni classe di priorità. Ad ogni processo sono assegnati più quanti di tempo, a seconda della classe di priorità a cui appartiene ü priorità maggiore --> n.ro di quanti minore Non appena un processo termina tutti i suoi quanti, viene spostato nella classe con priorità inferiore (n.ro di quanti maggiore) ü per ogni processo si riduce il numero di passaggi allo stato di ready per concludere la sua esecuzione, ü man mano che un processo scende nelle classi, otterrà la CPU sempre meno frequentemente lasciandola libera per i processi che richiedono poco tempo di CPU. 9

10 Concorrenza fra processi La esecuzione concorrente di più processi può portare a notevoli benefici rispetto alla esecuzione rigidamente sequenziale : ü Aumento dell utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono lavori quasi parallelamente. ü Suddivisione del carico computazionale su più processi in esecuzione contemporanea su più CPU di uno stesso sistema o, analogamente, sulle CPU di diversi calcolatori collegati in rete. ü Condivisione della stessa risorsa fisica fra diversi utenti in modo trasparente e controllato. ü Accesso contemporaneo, da parte di diversi utenti ad una base dati comune e centralizzata. La ottimizzazione dello sfruttamento della CPU da parte dei vari processi utente, può generare alcuni inconvenienti nel sistema di elaborazione: Starvation Deadlock (blocco critico) Concorrenza fra processi Starvation : fenomeno che si manifesta quando più processi potrebbero accedere alla stessa risorsa ma solo alcuni di essi vi riescono a causa della politica di gestione adottata. Se ad ogni processo è assegnata una priorità legata al tipo di utente e il SO assegna il processore ai processi con priorità più alta, si può verificare una situazione in cui un processo non ha mai accesso al processore poiché è sempre presente un processo con priorità più alta. Deadlock : blocco critico che investe un gruppo di processi che rimangono tutti permanentemente bloccati senza che la risorsa contesa venga utilizzata da alcuno di essi. Ad es : Due processi condividono la stessa stampante: ü Il processo A che inizialmente detiene la stampante, richiede i risultati del processo B per poter terminare le proprie elaborazioni e ugualmente il processo B necessita dei risultati di A. ü Entrambi i processi si bloccano in attesa della terminazione dell altro, senza che nessuno possa evolvere rilasciando la stampante. 10

11 Concorrenza fra processi Tecniche per evitare o, eventualmente, individuare e risolvere situazioni di blocco: ü Poltica Round-Robin di assegnamento circolare del processore consente di evitare fenomeni di starvation fra processi concorrenti. ü Tecnica di eliminazione dei processi coinvolti sino alla completa rimozione del blocco. ü Tecnica di assegnare a priori una aliquota delle risorse a tutti i processi coinvolti nel sistema oppure, ad ogni richiesta di risorse, verificare preventivamente l assenza di un blocco critico ( in applicazioni in ambito bancario o controllo di impianti industriali ) Interazioni fra processi: 1. Indesiderate e (spesso) impreviste I processi competono per le risorse al fine di poter completare la propria esecuzione, causando condizioni di attesa ed eventualmente problemi quali blocco critico o starvation. 2. Desiderate e previste I processi cooperano al fine di giungere alla soluzione di un problema complesso (Architetture client-server, in cui un processo richiede un servizio ad un altro e attende da esso la risposta) Concorrenza fra processi Il SO gestisce l interazione fra processi mediante: 1. meccanismi di sincronizzazione fra le attività che ogni processo deve svolgere in modo parallelo rispetto agli altri. Il controllo degli eventi mediante semafori logici. 2. meccanismi di comunicazione ossia modalità di scambio di dati fra processi. Ø Spazio di memoria comune (data sharing) in cui i processi possono scambiarsi i dati, nel caso di processi all interno dello stesso calcolatore. Ø Scambio di messaggi (message passing) con send e receive fra i processi, sia all interno dello stesso calcolatore sia in una rete di comunicazione. 11

12 Problema produttore consumatore E un paradigma classico per realizzare una forma di sincronizzazione tra processi condividendo un buffer comune. Il processo produttore produce informazioni che deposita nel buffer. Il processo consumatore legge invece i dati dal buffer rimuovendoli. L accesso al buffer di due processi può essere implementato mediante l uso di semafori. ü Buffer illimitato: non vengono posti limiti pratici alla dimensione del buffer. ü Buffer limitato: si assume che la dimensione del buffer sia fissata. CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti Soluzione con buffer limitato e memoria condivisa ; dati condivisi; var n; type item = ; var buffer: array [0..n 1] of item; in, out: 0..n 1; ; Processo produttore ; Repeat produce un elemento in nextp while in+1 mod n = out do no-op; buffer [in] := nextp; in := in+1 mod n; until false; ; Processo consumatore ; Repeat while in = out do no-op; nextc := buffer [out]; out := out+1 mod n; consuma l elemento in nextc until false; Lo schema della soluzione permette di avere al massimo n -1 elementi contemporaneamente contenuti nel buffer. 12

13 La sezione critica Si hanno n processi che competono per usare alcuni dati condivisi. Ciascun processo ha una parte di codice, chiamata sezione critica, in cui accede a dati condivisi. Problema assicurare che quando un processo esegue la sezione critica, nessun altro processo possa eseguire la propria sezione critica. Struttura del processo P i repeat entry section sezione critica exit section sezione non critica until false; Condizioni per la soluzione del problema della sezione critica ü ü ü Mutua esclusione. Se il processo Pi sta eseguendo la propria sezione critica, allora nessun altro processo può eseguire le proprie sezioni critiche. Progresso. Se nessun processo è in esecuzione nella propria sezione critica ed esiste qualche processo che desidera entrare nella propria sezione critica, allora la selezione del processo che può entrare nella propria sezione critica non può essere rimandata indefinitamente. Attesa limitata. E necessario porre un limite al numero di volte che si consente ad altri processi di entrare nelle proprie sezioni critiche, prima che la richiesta del primo processo sia stata accordata. Semafori e/o monitor Quando esistono n processi che leggono o scrivono lo stesso elemento contemporaneamente (più produttori e consumatori), la procedura che mette un risultato nel buffer dovrebbe contenere due azioni, una che determini uno spazio disponibile del buffer e l'altra che vi scrive il dato. Per superare situazioni di collisione nella scrittura nel buffer, occorre che solo un produttore per volta esegua putitemintobuffer(); si utilizza a tal fine una sezione critica con Mutex. (un semaforo binario) il cui valore uno o zero, assicura che solo un processo può essere in esecuzione tra i due cambi di valore del semaforo (algoritmo del biglietto o del fornaio). Prima di entrare in una sezione critica, i processi ricevono un numero (biglietto del negozio). Il possessore del numero più basso entra nella sezione critica. Se i processi P i e P j ricevono lo stesso numero, se i < j, allora P i viene servito prima, altrimenti P j è servito prima. I lucidi sono tratti da Operating System Concepts di Silberschatz and Galvin

14 Semafori q I semafori sono strumenti di sincronizzazione che possono essere di due tipi : Semaforo contatore intero che può assumere valori in un dominio non limitato. Semaforo binario intero che può essere settato solo a 0 o 1. q Si può accedere al semaforo solo attraverso due operazioni indivisibili (atomiche): wait (S): while S 0 do no-op; S := S 1; signal (S): S := S + 1; Esempio: sezione critica con n processi Variabili condivise var mutex : semaforo; (inizialmente mutex = 1) Processo P i repeat wait(mutex); sezione critica. signal(mutex); sezione non critica.. until false; Problema scrittori lettori Alcuni processi devono accedere in lettura e/o scrittura ad una risorsa condivisa (es. file). Se due lettori accedono contemporaneamente all insieme di dati non ci sono problemi. Gli scrittori devono avere accesso esclusivo all insieme di dati condivisi. Due formulazioni del problema sono le seguenti: ü Nessun lettore rimanga in attesa, a meno che uno scrittore abbia già ottenuto il permesso di utilizzare l insieme di dati condiviso. ü Uno scrittore, una volta pronto, esegua il proprio compito di scrittura al più presto (nessun nuovo lettore deve iniziare la lettura da questo momento). 14

15 Problema dei 5 filosofi I filosofi mangiano e pensano. Quando un filosofo ha fame, tenta di prendere le due bacchette che ha accanto. Prende prima una bacchetta poi l altra. Non rilascia le bacchette finché non ha finito. Non esclude il deadlock, ad esempio se tutti i filosofi hanno fame contemporaneamente e prendono prima la bacchetta alla loro destra. Alcune soluzioni: Solo quattro filosofi possono essere seduti contemporaneamente a tavola. Un filosofo può prendere le sue bacchette solo se sono entrambe disponibili (attenzione alle sezioni critiche). Adottare una soluzione asimmetrica. Un filosofo dispari prende prima la bacchetta di sinistra, un filosofo pari prende prima la bacchetta di destra. Monitor Il MONITOR è un costrutto di sincronizzazione di alto livello che permette la condivisione sicura di un tipo astratto di dati fra processi concorrenti. type monitor-name = monitor..dichiarazione variabili.. procedure entry P1 :( ); begin end; procedure entry P2( ); begin end;. procedure entry Pn ( ); begin end; begin codice di inizializzazione end Dal momento che i monitor garantiscono la mutua esclusione, non è necessaria nessuna implementazione aggiuntiva per proteggere le sezioni critiche nel caso di più produttori/consumatori. 15

16 Monitor Ø Per permettere ad un processo di attendere dentro al monitor, devono essere dichiarate variabili condition : var x, y: condition Ø La variabile condition può essere usata solo con le operazioni wait e signal. L operazione wait (x) vuol dire che il processo che chiama questa operazione viene sospeso finché un altro processo chiama signal (x); L operazione signal(x) riprende esattamente un processo sospeso. Se nessun processo è sospeso, allora l operazione di signal non ha effetto. Monitor per produttore/consumatore monitor ProducerConsumer { int itemcount condition full condition empty procedure add(item) { while (itemcount == BUFFER_SIZE) { wait(full) putitemintobuffer(item) itemcount = itemcount + 1 if (itemcount == 1) { notify(empty) procedure remove() { while (itemcount == 0) { wait(empty) item = removeitemfrombuffer() itemcount = itemcount 1 if (itemcount == BUFFER_SIZE - 1) { notify(full) return item; procedure producer() { while (true) { item = produceitem() ProducerConsumer.add(item) procedure consumer() { while (true) { item = ProducerConsumer.remove() consumeitem(item) 16

17 Thread Nei sistemi distribuiti risulta indispensabile riuscire ad aumentare la granulosità dei processi. La soluzione è l uso di cosiddetti thread di controllo multipli per ogni processo (task), che consentano di svolgere le diverse attività di un processo senza necessariamente bloccare l intero processo. Un thread è l unità di base di utilizzo della CPU e consiste di : Program counter Insieme dei registri Spazio dello stack Un thread condivide con i thread ad esso associati: sezioni di codice sezioni dati risorse del sistema operativo L insieme dei thread (e dell ambiente da essi condiviso) è chiamato task. Un processo tradizionale corrisponde ad un task con un solo thread CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti Uso dei thread in sistemi NON distribuiti L IPC si ottiene attraverso ripetute e pesanti attività di context switching dei processi. Ciò si potrebbe evitare utilizzando thread a livello di utente (uthread). i thread invece - Gli u-thread svolgono la loro attività in spazio utente, non possono eseguire istruzioni privilegiate o accedere a primitive del kernel. Il sistema operativo avvia il processo multithread considerandolo come entità unica. - Gli u-thread sono anche detti Molti-ad- Uno perché il S.O. associa tutti i thread di un processo ad un singolo contesto di esecuzione. Rif.: A.Tanenbaum,M.Van Steen Sistemi distribuiti Pearson Prentice Hall 2007 ) B - Il pacchetto dei thread a livello utente (u-thread) usa una stessa routine (scheduler) per pianificare il thread successivo. CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti 17

18 Implementazione dei Thread Combinazione di thread diversi (Lightweight process a livello di kernel e thread a livello di utente) per parallelizzare il più possibile le attività di gestione dei processi a costi ridotti d uso del kernel. - Un pacchetto di thread a livello di utente (u-thread) ha costi minori in termini di uso di risorse e di tempi di esecuzione (ad es. i context switching) e vengono svolti senza impegnare il kernel. Rif.: A.Tanenbaum,M.Van Steen Sistemi distribuiti Pearson Prentice Hall 2007 ) I thread a livello kernel (k-thread o LPW) condividono lo spazio di indirizzamento del processo cui appartengono (memorizza i dati specifici per ogni thread nel sistema) ed esegue le istruzioni di un u-thread. - Un LPW viene eseguito nel contesto di un singolo processo (il S.O. fornisce ad ogni u-thread un thread LPW a livello kernel ) ed è per questo detto multithread Uno-a-Uno. ad es. Multi-thread di Solaris 2 implementazione ibrida del multi-threading Combinazione di thread diversi (Lightweight process a livello di kernel e thread a livello di utente) per parallelizzare il più possibile le attività di gestione dei processi a costi ridotti d uso del kernel. Una soluzione ibrida prevede una associazione di thread Tecnica del thread pooling Molti-a-Molti ( diversi u-thread ad un insieme di LPW ) - Ad ogni processo (task) corrispondono più u-thread. - Ad ogni u-thread possono corrispondere uno o più LPW (ad es. per accedere ad una risorsa mediante var. mutex o semafori) che si possono raggruppare in un pool di thread. Rif.: SUN Microsystems Sparc Manuale OS Solaris 18

19 Thread In un task con più thread, mentre un thread è bloccato e in attesa, un secondo thread nello stesso task può essere in esecuzione. La cooperazione di più thread nello stesso job fornisce un più grande throughput e prestazioni migliorate. Applicazioni che richiedono la condivisione di un buffer comune (es. produttore-consumatore) traggono beneficio dall impiego di thread. I thread forniscono un meccanismo che permette a processi sequenziali di effettuare chiamate di sistema bloccanti, ottenendo allo stesso tempo un esecuzione parallela. CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti Thread nei sistemi distribuiti I thread forniscono un mezzo per consentire chiamate di sistema bloccanti, senza bloccare l intero processo in cui il thread è in esecuzione, per cui sono particolarmente utili nel realizzare in parallelo le attività di comunicazione nei sistemi distribuiti. Il multi-threading lato client Ad esempio i Browser WEB realizzano molte delle attività previste attraverso l attivazione di thread multipli per nascondere la latenza della comunicazione, per la visualizzazione del file html durante la ricezione dei file, per consentire la navigazione con i link durante la visualizzazione delle immagini, ecc. 19

20 Thread per distribuire in modo trasparente le risorse sui client Un modo possibile per la replica trasparente di oggetti remoti usando una soluzione client-server multithreads CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti Multithread lato server Un server multithread organizzato secondo il modello dispatcher/worker Rif.: A.Tanenbaum,M.Van Steen Sistemi distribuiti Pearson Prentice Hall 2007 ) CdL in Informatica- Magistrale Università di Bari Sistemi Distribuiti 20

21 Server multithread Es.: tre modi per costruire un file server con tempi ridotti di gestione ed esecuzione dei task Model MultiThreads Single-threaded process Finite-state machine Characteristics Parallelism, blocking system calls No parallelism, blocking system calls Parallelism, nonblocking system calls 21

CdL MAGISTRALE in INFORMATICA

CdL MAGISTRALE in INFORMATICA 14/10/13 CdL MAGISTRALE in INFORMATICA A.A. 2013-2014 corso di SISTEMI DISTRIBUITI 2. I processi : proprietà ed multi-threading Prof. S.Pizzutilo I Processi buffering gestione failure indirizzamento processi

Dettagli

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

CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI. I Processi. buffering gestione failure indirizzamento processi naming 29/10/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI Modulo 2 > I processi : proprietà e multi-threading Prof. S.Pizzutilo I Processi buffering gestione failure indirizzamento

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI 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

Dettagli

Le risorse. Alcune definizioni

Le risorse. Alcune definizioni Le risorse Dicesi risorsa un qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine la sua evoluzione. Poiché un processo evolve eseguendo istruzioni (procedure), una risorsa

Dettagli

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni: 1 Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni: codice del programma in esecuzione un area di memoria contenente le strutture dati dichiarate

Dettagli

Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B. Esercitazioni 3 e 4

Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002. Sistemi Operativi Corsi A e B. Esercitazioni 3 e 4 Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 3 e 4 Sincronizzazione dei Processi (2 a parte) Problemi classici di sincronizzazione

Dettagli

Esercitazioni 3 e 4. Sincronizzazione dei Processi (2 a parte)

Esercitazioni 3 e 4. Sincronizzazione dei Processi (2 a parte) Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Corsi A e B Esercitazioni 3 e 4 Sincronizzazione dei Processi (2 a parte) Problemi classici di sincronizzazione

Dettagli

Prof. G. Ascia. Sistema Operativo

Prof. G. Ascia. Sistema Operativo Sistema Operativo In parte tratto dal capitoli 13 del libro Mandrioli, Ceri, Sbattella, Cremonesi, Cugola, "Informatica: arte e mestiere",3a ed., McGraw-Hill Fondamenti di Informatica 1 Il Sistema Operativo

Dettagli

Cenni di sistemi operativi

Cenni di sistemi operativi Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Cenni di sistemi operativi Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Sistemi Operativi. Lezione 3 Processi e Thread

Sistemi Operativi. Lezione 3 Processi e Thread Lezione 3 Processi e Thread Introduzione Sino ai sistemi batch la CPU di un sistema svolgeva un attività, la portava a termine e solo allora avviava un altra attività Con l avvento della multiprogrammazione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T5 B1-Programmazione multithreading 1 Prerequisiti Schedulazione Attesa indefinita Lo stallo Tecnica round-robin 2 1 Introduzione La programmazione concorrente consente di chiedere

Dettagli

Il Concetto di Processo

Il Concetto di Processo I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

Elaborazione parallela

Elaborazione parallela La gestione dei processi laborazione parallela Il concetto di elaborazione parallela si riferisce specificamente: ai dati; alle istruzioni; ai programmi. Il parallelismo a livello di dati e di istruzioni

Dettagli

I Processi. Il Concetto di Processo

I Processi. Il Concetto di Processo I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

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

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1 GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Sistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008

Sistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Il Concetto di Processo

Il Concetto di Processo I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

Il Concetto di Processo

Il Concetto di Processo I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

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

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un

Dettagli

Sistemi Operativi: Concetti Introduttivi

Sistemi Operativi: Concetti Introduttivi Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Il concetto di processo Schedulazione dei processi Operazioni sui processi

Dettagli

6. Sincronizzazione dei Processi. Esempio: Produttore- Consumatore con n elementi. Esempio: Produttore- Consumatore con n elementi

6. Sincronizzazione dei Processi. Esempio: Produttore- Consumatore con n elementi. Esempio: Produttore- Consumatore con n elementi 1 6. Sincronizzazione dei Processi Importante: l accesso concorrente a dati condivisi può produrre dati inconsistenti processi cooperanti attraverso la condivisione di dati devono agire in modo ordinato,

Dettagli

Introduzione al Multithreading

Introduzione al Multithreading Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 8 Martedì 8-11-2016 1 Algoritmi di scheduling basati sulle priorità Assegnano

Dettagli

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Un sistema software distribuito è composto da un insieme di processi in esecuzione su più nodi del sistema Un algoritmo distribuito può

Dettagli

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

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

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

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a

Dettagli

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito B Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Un sistema con 5 processi (A,, C,, ) e risorse dei tipi R1, R2, R3, R4, rispettivamente di molteplicità [7, 7, 3, 6], utilizza l algoritmo

Dettagli

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB) Processi Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi 1 Il descrittore di processo (PCB) Il S.O. gestisce i processi associando a ciascuno di essi

Dettagli

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi 3.3 Silberschatz, Galvin and Gagne 2005 1 Un SO esegue diversi tipi di programmi Sistema

Dettagli

Il Sistema Operativo Processi e Risorse

Il Sistema Operativo Processi e Risorse ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Processi Evoluzione dei Processi Modello a Processi Interrupt Context Switching Risorse Risorsa, Classe, Istanza, Molteplicità

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 10 Martedì 7-11-2017 Thread a livello kernel Modello da uno a uno La

Dettagli

ESERCITAZIONE 6 - Soluzioni. Processi e thread

ESERCITAZIONE 6 - Soluzioni. Processi e thread ESERCITAZIONE 6 - Soluzioni Processi e thread 2 Processi e Thread 3 Calcolatori e processi (1) 1) In figura è mostrato lo stato di tre processi. In teoria, con 3 stati potrebbero verificarsi 6 transizioni,

Dettagli

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO: Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1-Concetti fondamentali 1 Prerequisiti Hardware e software Uso pratico elementare di un sistema operativo Software di base e software applicativo 2 1 Introduzione Iniziamo

Dettagli

Il Sistema Operativo Ripasso

Il Sistema Operativo Ripasso ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Concetti di base Sistema Operativo Risorse Funzioni e Struttura Bootstrap, Kernel, Shell Gestione dei Processi Processo e PCB Algoritmi

Dettagli

CAPITOLO 18 LA PROGRAMMAZIONE CONCORRENTE

CAPITOLO 18 LA PROGRAMMAZIONE CONCORRENTE CAPITOLO 18 LA PROGRAMMAZIONE CONCORRENTE Origini della CONCORRENZA Competizione tra processi per ottenere (e condividere) le Risorse: CPU, memoria, canali di I/O, files, ecc... Necessità di comunicazione

Dettagli

Consentire a utenti/processi diversi la condivisione delle risorse

Consentire a utenti/processi diversi la condivisione delle risorse Il nucleo del sistema operativo (kernel) Funzioni del livello: Conoscere lo stato del processore e programma in attesa (modulo Traffic Controller) Decidere chi potrà usare la CPU (modulo 1 Job Scheduler

Dettagli

Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune

Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune a) Uso di una risorsa condivisa Siano P 1, P 2, P 3,, P k i processi che condividono l uso di una risorsa comune

Dettagli

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms 1. (a) Si descriva il meccanismo attraverso cui i programmi richiamano i servizi del Sistema Operativo. Si faccia qualche esempio. (b) Si descriva l algoritmo di scheduling nel sistema Windows Vista (e

Dettagli

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Operativi SISTEMI OPERATIVI THREAD 2 Motivazioni» Un programma complesso può eseguire in modo concorrente più funzioni attraverso la creazione e gestione di processi figli attraverso il meccanismo dei thread» La

Dettagli

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive) SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a

Dettagli

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

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione 1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.

Dettagli

Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente

Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Informatica 3 LEZIONE 6: Il controllo dell esecuzione Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Informatica 3 Lezione 6 - Modulo 1 La gestione delle eccezioni Il controllo

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

Monitor. Le procedure entry sono le sole operazioni che possono essere utilizzate dai processi per accedere alle variabili comuni.

Monitor. Le procedure entry sono le sole operazioni che possono essere utilizzate dai processi per accedere alle variabili comuni. Monitor Costrutto sintattico che associa un insieme di procedure ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni permesse su quella struttura.

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa

Dettagli

Gestione del processore. Il modello a thread

Gestione del processore. Il modello a thread Gestione del processore Il modello a thread 1 Il modello a thread : motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento privato ed il modo per interagire è quello di utilizzare

Dettagli

Sistemi Operativi. Processi e Thread

Sistemi Operativi. Processi e Thread Sistemi Operativi Processi e Thread 1 Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, esecuzione sequenziale (istruzioni vengono eseguite

Dettagli

Richiami sui Concetti Fondamentali dei Processi

Richiami sui Concetti Fondamentali dei Processi Processi Processi 1 Richiami sui Concetti Fondamentali dei Processi Processi 2 Definizione Nell ambito dei sistemi operativi esistono diverse definizioni di processo, ad es. un programma in esecuzione

Dettagli

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 DIPARTIMENTO DI INFORMATICA Alberto Ceselli (alberto.ceselli@unimi.it) Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE La gestione delle periferiche

Dettagli

Sincronizzazione dei processi. Capitolo 5 -- Silberschatz

Sincronizzazione dei processi. Capitolo 5 -- Silberschatz Sincronizzazione dei processi Capitolo 5 -- Silberschatz Processi cooperanti Nei moderni SO, i processi vengono eseguiti concorrentemente Possono essere interrotti in qualunque momento nel corso della

Dettagli

Il supporto al sistema operativo

Il supporto al sistema operativo Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Sincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Problemi di sincronizzazione tipici Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Produttore-Consumatore Produttore e consumatore con memoria limitata Utilizza

Dettagli

Processi e thread. Concetto di processo

Processi e thread. Concetto di processo Processi e thread Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione l di un processo è sequenziale (le istruzioni vengono

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Processi in Unix/Linux caratteristiche

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T5 1 I thread 1 Prerequisiti Concetto di processo Interazione diretta Interazione indiretta Mutua esclusione Produttore-consumatore Schedulatore 2 1 Introduzione Generalmente,

Dettagli

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi. Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi. Scheduler (a breve

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 14 Giovedì 22-11-2018 Scheduling in UNIX Poiché UNIX è un sistema multiutente

Dettagli

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A

Sistemi Operativi e Laboratorio, Prova del 6/4/2017 versione A Nome: Cognome: Matricola: corso: fila: posto: Esercizio 1 (5 punti) Si consideri un processore che dispone dei registri speciali PC (program counter) e PS (program status), dello stack pointer SP e dei

Dettagli

Esercitazioni 13 e 14

Esercitazioni 13 e 14 Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazioni 13 e 14 Comunicazione tra processi (IPC) Meccanismo per la comunicazione

Dettagli

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

Processi e Thread. Concetto di processo

Processi e Thread. Concetto di processo Sistemi Operativi L-AL Processi e Thread Sistemi Operativi L-A AA 2008-2009 1 Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, esecuzione

Dettagli

Processi. Capitolo 3 -- Silberschatz

Processi. Capitolo 3 -- Silberschatz Processi Capitolo 3 -- Silberschatz Concetto di processo Un programma può corrispondere a diversi processi Si pensi a un insieme di utenti che utilizzano uno stesso editor in relazione a file diversi Quindi,

Dettagli

Sistemi Operativi T. Processi e Thread

Sistemi Operativi T. Processi e Thread Sistemi Operativi T Processi e Thread 1 Concetto di processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, esecuzione sequenziale (istruzioni vengono

Dettagli

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

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1 Unità di interfaccia

Dettagli

Sistemi Operativi T Processi e Thread

Sistemi Operativi T Processi e Thread Sistemi Operativi T Processi e Thread Sistemi Operativi T AA 2009-2010 1 Concetto di processo Il processo è un programma in esecuzione È l unità l di esecuzione all interno del SO Solitamente, esecuzione

Dettagli

Sistemi operativi - Concetti ed esempi -Settima edizione

Sistemi operativi - Concetti ed esempi -Settima edizione Capitolo 6: Sincronizzazione dei processi Capitolo 6: Sincronizzazione dei processi Introduzione Problema della sezione critica Soluzione di Peterson Hardware per la sincronizzazione Semafori Problemi

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU 1 Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi. Scheduler della

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

Dettagli

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

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class

Dettagli

Modelli di programmazione parallela

Modelli di programmazione parallela Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici

Dettagli

Gestione periferiche I/O

Gestione periferiche I/O Gestione periferiche I/O Compiti del sottosistema IO Nascondere al programmatore i dettagli delle interfacce hw e dei dispositivi (utilizzo di controllori) Omogeneizzare la gestione di dispositivi diversi

Dettagli

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Scheduling della CPU Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Concetti fondamentali Uno degli obbiettivi della multiprogrammazione è quello di massimizzare

Dettagli

Sistemi Operativi. Lezione 7-bis Esercizi

Sistemi Operativi. Lezione 7-bis Esercizi Sistemi Operativi Lezione 7-bis Esercizi Esercizio Problema dei lettori e scrittori Un insieme di processi condivide un file dal quale alcuni possono solo leggere i dati, altri solo scriverli Più lettori

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Thread POSIX nel sistema Linux (parte

Dettagli

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono

Dettagli

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1 SISTEMI DI INPUT/OUTPUT 10.1 Sistemi I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l I/O del kernel Trasformazione delle richieste di I/O Stream Prestazioni 10.2 I/O Hardware

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi. La gestione delle risorse Sistemi Operativi La gestione delle risorse Introduzione Il sistema operativo ha il compito di fornire la gestione dell hardware ai programmi dell utente. Utente utilizza i programmi applicativi Programmi

Dettagli

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 5 Martedì 17-10-2017 Descrittore del processo (PCB) Ogni processo è rappresentato

Dettagli

Capitolo 6 Le infrastrutture SoftWare

Capitolo 6 Le infrastrutture SoftWare Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file 2 1 Il sistema operativo E uno

Dettagli

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più

Dettagli

II parte: Gestione dei Processi. 3. Processi. 3.1 Concetto di Processo

II parte: Gestione dei Processi. 3. Processi. 3.1 Concetto di Processo 1 II parte: Gestione dei Processi processi (cap. 3) Thread (cap. 4) Scheduling della CPU (cap. 5) Sincronizzazione fra processi (cap. 6) Deadlock (stallo dei processi) (cap. 7) 3. Processi 2 Il processo

Dettagli

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano Domande di riepilogo 1) Il descrittore di processo (Process Control Block) include al suo interno:

Dettagli

Processi e Thread. Meccanismi di IPC (1)

Processi e Thread. Meccanismi di IPC (1) Processi e Thread Meccanismi di IPC (1) 1 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per comunicare e sincronizzarsi : scambiare dati utilizzare

Dettagli

SCHEDULING DELLA CPU. Obiettivi. » Introduzione allo scheduling della CPU. » Algoritmi di scheduling della CPU

SCHEDULING DELLA CPU. Obiettivi. » Introduzione allo scheduling della CPU. » Algoritmi di scheduling della CPU SISTEMI OPERATIVI SCHEDULING DELLA CPU Obiettivi» Introduzione allo scheduling della CPU Aspetto fondamentale dei sistemi operativi multiprogrammati» Algoritmi di scheduling della CPU» Criteri per la scelta

Dettagli

il Nucleo e la gestione dei processi

il Nucleo e la gestione dei processi il Nucleo e la gestione dei processi 1. Programmi, processi e risorse Differenza fra programmi e processi Il Programma rappresenta la descrizione del procedimento logico (algoritmo) che deve essere eseguito

Dettagli

Esercitazione di Sistemi Operativi

Esercitazione di Sistemi Operativi Esercitazione di Sistemi Operativi Moreno Marzolla Università Ca Foscari di Venezia email: marzolla@dsi.unive.it Esercizio 1: Scheduling In un sistema time sharing con priorità sono presenti 4 processi

Dettagli

Sistemi Operativi: Concetti generali. Sistemi Operativi: Concetti generali

Sistemi Operativi: Concetti generali. Sistemi Operativi: Concetti generali Servizi fondamentali di un Sistema Operativo Classificazione dei Sistemi Operativi secondo l ut Servizi fondamentali di un Sistema Operativo Classificazione dei Sistemi Operativi secondo l ut Concetti

Dettagli

Interazione tra Processi. Sistemi Operativi T AA

Interazione tra Processi. Sistemi Operativi T AA Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun

Dettagli