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

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "7. Sincronizzazione dei Processi. Esempio: Produttore- Consumatore con n elementi. Esempio: Produttore- Consumatore con n elementi"

Transcript

1 1 7. 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, cioè sincronizzarsi Esempio dimostrativo Produttore/Consumatore che usa tutti gli elementi del buffer. (n elementi al massimo nel buffer) Esempio: Produttore- Consumatore con n elementi Aggiungere counter inizializzato a 0 alle variabili shared che indica il numero di elementi nel buffer shared var n: integer; counter: integer; type item =...; shared var buffer: array [0..n-1] of item; shared var in, out: 0..n-1; Buffer circolare con due puntatori in e out inizializzati a 0 (vedi cap. 4) 2 Esempio: Produttore- Consumatore con n elementi 3 Produttore var nextp: item; repeat <produce un nuovo item in nextp> while counter = n do no_op; buffer[in] := nextp; in := in+1 mod n; counter := counter+1; until false;

2 Esempio: Produttore- Consumatore con n elementi 4 Consumatore var nextc: item; repeat while counter = 0 do no_op; nextc := buffer[out]; out := out+1 mod n; counter := counter-1; <consuma l'item in nextc> until false; Esempio: Produttore- Consumatore con n elementi 5 Sebbene le routine siano corrette se considerate separatamente, possono non funzionare se eseguite in concorrenza!!! Problema: accesso alla variabile condivisa counter Se counter vale 5, dopo le istruzioni di incremento e decremento può essere uno qualunque tra 4, 5 o 6!! 6 Cosa non funziona? Incremento e decremento di counter In producer: register 1 = counter register 1 = register counter = register 1 In consumer: register 2 = counter register 2 = register 2-1 counter = register 2

3 7 Cosa non funziona Producer: register 1 = counter Producer: register 1 = register Consumer: register 2 = counter Consumer: register 2 = register 2-1 Producer: counter = register 1 Consumer: counter = register Sezioni critiche I due programmi possono produrre risultati scorretti perché insieme manipolano la stessa variabile concorrentemente Se avessi l aritmetica in memoria (una sola istruzione, un solo processore): nessun problema una istruzione è eseguita in modo atomico Sezioni critiche Se avessi l aritmetica in memoria ma più di un processore: ancora problemi perché l istruzione accede due volte in memoria (per leggere e per depositare il risultato) L intrallacciamento di istruzioni o di accessi in memoria provoca corsa critica sequenzializzare l accesso alla variabile da manipolare concorrentemente

4 Sezioni critiche Sezione critica =:= segmento di codice che deve essere eseguito senza interfogliamento con altre sezioni critiche della stessa famiglia Le variabili condivise determinano le sezioni critiche. Problema: assicurare che quando un processo sta eseguendo la propria sezione critica, nessun altro processo abbia il permesso di eseguire la sua sezione critica Sezioni critiche Un processo è costituito da: entry section: per chiedere di entrare sezione critica vera e propria exit section per segnalare l uscita dalla sezione critica remainder section che non fa accesso a dati critici 7.2 Proprietà richieste alle soluzioni 12 Mutua esclusione nella sezione critica Progresso: se la sezione critica è vuota, solo chi cerca di entrare partecipa alla decisioni di chi entrerà davvero, ed entro un tempo finito Attesa limitata superiormente, per chi attende fuori che la sezione si liberi

5 7.2 Proprietà richieste alle soluzioni 13 Velocità dei processi non nulla, ma nessuna ipotesi sulle velocità relative perché la soluzione non dipenda dallo scheduling della CPU Vediamo una soluzione per due processi Usiamo una variabile turn inizializzata a 0 se turn = i, allora P i può accedere alla sezione critica 14 Algoritmo 1 Il codice di P i è repeat while (turn i) do no_op; <critical section> turn = j; <remainder section> until false; Assicura mutua esclusione, ma non il progresso: stretta alternanza dei processi 15 Algoritmo 2 Sostituiamo turn con shared var flag: array[0..1] of boolean; Inizializzazione flag[0] = flag[1] = false Il codice di P i è repeat flag[i] := true; while flag[j] do no_op; <critical section> flag[i] := false; <remainder section> until false;

6 16 Algoritmo 2 Soddisfa mutua esclusione, ma non il requisito di progresso Consideriamo la seguente sequenza di esecuzione P i pone flag[i] = true P j pone flag[j] = true P i e P j entrano nel while e non ne escono più! 17 Algoritmo 3 Usiamo sia turn che flag Inizializzazione flag[0] = flag[1] = false, turn = 0 {0 o 1 è lo stesso}. Il Il codice di di PP j è i è repeat flag[i] flag[j] := true; turn := j; i; while (flag[j] and turn j) do while no_op; (flag[i] and turn = i) do no_op; <critical <critical section> section> flag[i] flag[j] := := false; false; <remainder <remainder section> section> until false; 18 Algoritmo 3 Mutua esclusione: se tentano di entrare assieme (ognuno ha già assegnato il suo flag) uno dei due assegnamenti a turn sarà l ultimo (atomicità delle istruzioni!) e non cambia fino a che non si rientra nella entry section Progresso: chi esce si dichiara fuori (falso al proprio flag) e quindi il while dell altro termina e lascia entrare

7 19 Algoritmo 3 Attesa limitata: il loop non può essere eseguito per più tempo della sezione critica e quindi è limitata dalla durata della sezione critica dell altro Non si ipotizza che i processi viaggino a velocità opportuna Per n processi c è l algoritmo "del fornaio" (sul libro) 20 Algoritmo del Fornaio Soluzione al problema della sezione critica per n processi Prima di entrare nella propria sezione critica, un processo riceve un numero. Il possessore del numero minore entra nella sezione critica. Se due processi P i and P j ricevono lo stesso numero, se i < j, allora P i entra; altrimenti entra P j. I numeri vengono generati sempre in ordine crescente, ad es., 1,2,3,3,3,3,4, Algoritmo del fornaio(cont.) Notazione: ordine lessicografico (# biglietto, process id) (a,b) < (c,d) se a < c o se a = c e b < d max (a 0,, a n-1 ) è un numero k, tale che k a i i = 0,, n 1 Variabili condivise inizializzate a false e 0 rispettivamente var choosing: array [0..n 1] of boolean; number: array [0..n 1] of integer

8 22 Algoritmo del fornaio(cont.) repeat choosing[i] := true; number[i] := max(number[0], number[1],, number [n 1])+1; choosing[i] := false; for j := 0 to n 1 do begin while choosing[j] do no-op; while number[j] 0 and (number[j],j) < (number[i], i) do no-op; end; critical section number[i] := 0; remainder section until false; Sincronizzazione via Hardware Problemi con l algoritmo del fornaio troppo complesso in codice e dati i processi fanno busy-waiting =:= attendere usando la CPU Altra soluzione: Disabilitare gli interrupt per evitare context switch, ma la sezione critica può essere molto lunga non si può girare a lungo con interrupt disabilitati Sincronizzazione via Hardware non va bene sui multiprocessori (o richiede troppo tempo, mentre Algoritmo#3 oppure la panetteria vanno bene) produce errori nella misurazione del tempo (fatta con le interruzioni) introdurre istruzioni speciali che scambiano atomicamente il valore di un registro e di una cella di memoria TestAndSet Swap

9 Sincronizzazione via Hardware shared var lock: boolean; Inizializzazione lock = false repeat while TestAndSet(lock) do no_op; <critical section> lock := false; <remainder section> until false; Sincronizzazione via Hardware Va bene anche per i multiprocessori con sharing di memoria TestAndSet o Swap è una caratteristica del bus e della memoria, difficile da realizzare Semafori Per avere attesa limitata (TestAndSet da sola non lo da) occorre un algoritmo con strutture dati complesse (vedi libro) Anche con istruzioni speciali si fa busywaiting Semafori inventati da Dijkstra (1965) per minimizzare busy-waiting

10 Semafori Definiti tramite due operazioni P (Proberen) e V (Verhogen) oppure W (Wait) e S (Signal) Le operazioni devono essere atomiche. Semaforo in genere inizializzato a 1 wait(sem) : while sem 0 do no_op; sem := sem-1; signal(sem) : sem := sem+1; 29 Sezione critica con n processi Variabili condivise var mutex : semaphore initially mutex = 1 Generico processo P i repeat wait(mutex); critical section signal(mutex); remainder section until false; Semafori Si possono usare anche per problemi di sincronizzazione diversi; ad es., eseguire S1 prima di S2; usiamo un semaforo sync:=0; P1 esegue: S1; signal(sync); P2 esegue: wait(sync); S2;

11 Implementazione dei Semafori Se li implementiamo come le sezioni critiche busy waiting sono detti spinlock invece, bloccare il processo in attesa in opportuna coda type semaphore = record value: integer; L: list of process; end; Implementazione dei Semafori wait(s) : S.value := S.value -1; if S.value<0 then begin <add this proc to S.L> block; end; block: invoca scheduler e dispatcher commutazione della CPU Implementazione dei Semafori signal(s) : S.value := S.value+1; if S.value 0 then begin <remove proc P from S.L> wakeup(p); end; wakeup(p): mette P in ready queue (schedulando o meno a seconda se lo

12 Implementazione dei Semafori Wait e Signal sono sezioni critiche molto brevi su monoprocessore si può disabilitare le interruzioni TestAndSet o soluzioni complesse sui multiprocessori busy-wait o interrupt disabilitati ridotti al minimo, ma non eliminati Busy-waiting NON DEVE essere adottato per sezioni critiche applicative e quindi di lunga durata Deadlock & Starvation I semafori sono molto meno strutturati due o più processi possono attendere su un semaforo sul quale solo uno di loro può fare (ha un programma tale che fa) una signal =:= deadlock È CATTIVA PROGRAMMAZIONE!!! (dei processi) Deadlock & Starvation P 0 P 1 wait(s); wait(q); wait(q); wait(s);... signal(s); signal(q); signal(q); signal(s);

13 Deadlock & Starvation Starvation =:= non uscire mai dalla coda di attesa. CATTIVA PROGRAMMAZIONE DELLA SIGNAL (cioè della exit section dalle sezioni critiche) e quindi dello scheduling Applicazioni dei semafori per esercizio 38 Produttore-Consumatore Buffer di n posizioni a cui i processi accedono Dati condivisi type item = var buffer = array [0..n-1] of item; full, empty, mutex: semaphore; nextp, nextc: item; full :=0; empty := n; mutex :=1; 39 Produttore-Consumatore Produttore repeat produce an item in nextp wait(empty); wait(mutex); signal(mutex); signal(full); until false;

14 40 Produttore-Consumatore Consumatore repeat wait(full) wait(mutex); remove an item from buffer to nextc signal(mutex); signal(empty); consume the item in nextc until false; 41 Lettori-Scrittori Condividere risorse (ad es. un file) tra molti processi Alcuni processi richiedono solo la lettura (processi lettori), altri possono modificare la risorsa (processi scrittori) Due o più lettori possono accedere contemporaneamente Un processo scrittore deve accedere in mutua esclusione con TUTTI gli altri processi 42 Lettori-Scrittori Strutture dati condivise var mutex, wrt: semaphore (=1); readcount : integer (=0); Processo scrittore wait(wrt); writing is performed signal(wrt);

15 43 Processo lettore Lettori-Scrittori wait(mutex); readcount := readcount +1; if readcount = 1 then wait(wrt); signal(mutex); reading is performed wait(mutex); readcount := readcount 1; if readcount = 0 then signal(wrt); signal(mutex): 44 Problema dei filosofi 5 filosofi passano la vita pensando e mangiando I filosofi condividono un tavolo rotondo con 5 posti. Un filosofo per mangiare deve usare due bacchette Dati condivisi var chopstick: array [0..4] of semaphore; (=1 initially) 45 Problema dei filosofi Philosopher i: repeat wait(chopstick[i+1 mod 5]) wait(chopstick[i]) eat signal(chopstick[i]); signal(chopstick[i+1 mod 5]); think until false;

16 46 Problema dei filosofi La soluzione presentata non esclude il deadlock (diverse soluzioni) solo 4 filosofi a tavola contemporaneamente prendere le due bacchette insieme (sezione critica!) prelievo asimmetrico in un filosofo Inoltre, si deve escludere starvation di un filosofo Regioni Critiche Condizionali 7.7 Monitor Costrutti linguistici inventati per evitare i problemi di programmazione che facilmente si fanno con i semafori Attenzione con i thread: in tale ambiente ci sono in genere solo semafori o poco più Li vedrete nel prossimo corso 7.9 Transazioni Atomiche 48 Mutua esclusione esecuzione indivisibile di sezioni critiche Transazione Atomica =:= transazione indivisibile che avviene completamente oppure non avviene affatto non sono osservabili stati intermedi se non può essere completata con successo, lascia il mondo inalterato È un concetto del mondo dei data base, ma utile nei SO i SO possono fornire le primitive per realizzarle

17 7.9.1 Modello del Sistema Transazionale Transazione =:= funzione logica costituita da molteplici operazioni, fra le quali interessano read/write commit/abort abort causato dal SO o dall hardware (crash!) Quando la transazione abortisce bisogna ripristinare lo stato come prima dell inizio della transazione roll-back. È compito del sistema transazionale (SO+ambiente specifico) realizzare il roll-back Proprietà delle Memorie Volatile: si perde per crash (ad es RAM) Non volatile: sopravvive ai crash (EEPROM, dischi, nastri, etc) ma ha comunque una significativa probabilità di perdita Stabile: non si perde mai (quasi, mai apprezzabilmente) 51 Problematiche replicare l'informazione, scriverla e modificarla in modo appropriato realizzare transazioni atomiche in un ambiente in cui ci può essere perdita di informazione su memoria volatile (cioè la memoria volatile non è considerata sufficiente) recuperare l info in modo appropriato

18 Ripristino Basato su Log Log =:= registrazione (non logaritmo!) registrare su memoria stabile tutte le modifiche fatte dalla transazione ai dati (che in genere vengono tenuti su memoria non volatile) Write-ahead logging: ogni record contiene nome della transazione nome del dato vecchio valore nuovo valore Ripristino Basato su Log Record per registrare inizio, commit, abort di transazione Il log record di write viene scritto prima di fare la write due write al posto di una! due procedure undo(t i ) e redo(t i ) che si basano sul log. Sono ambedue idempotenti Ripristino Basato su Log Se il log contiene < T i start> e < T i commit> e la memoria non volatile si è perduta redo(t i ) Se il sistema ha un crash allora se esiste < T i start> ma non esiste < T i commit> undo(t i ) se esistono ambedue < T i start> e < T i commit> redo(t i )

19 Checkpoint Possibile che ad ogni crash dobbiamo rifare tutte le transazioni eseguite dal crash precedente? No! Checkpoint =:= punto di verifica tutti i record di log da memoria volatile a memoria stabile tutti i dati da memoria volatile a memoria stabile emettere un log record <checkpoint> sul log in memoria stabile Checkpoint Ci si comporta poi così: 1. Ad ogni crash si esamina il log cercando dal fondo (all indietro) l ultimo record di <checkpoint> che vi si trova 2. A partire da tale record di checkpoint si trova all indietro (prima di tale ultimo <checkpoint>) la più recente T i che è partita prima del checkpoint la prima < T i start> che si trova leggendo all indietro il file di log Checkpoint Nota bene: l ipotesi è che nel sistema si esegua una transazione alla volta 3. Si legge in avanti il file di log facendo undo o redo di tutte le transazioni che si trovano, come nel caso che non si utilizzi il checkpoint

20 7.9.4 Transazioni Atomiche Concorrenti 58 Devono godere della proprietà di serializzabilità =:= l effetto finale complessivo ottenuto deve essere identico all effetto che si sarebbe ottenuto con uno degli ordini di esecuzioni seriale possibili abbiamo un problema di mutua esclusione e sezioni critiche Utilizzare un unico semaforo è troppo restrittivo poco parallelismo Transazioni Atomiche Concorrenti Il parallelismo massimo dipende dal modo con cui i dati vengono usati nelle transazioni Serial schedule di due transazioni =:= ognuna delle due transazioni è eseguita in modo atomico, senza parallelismo T 0 T 1 read(a) - write(a) - read(b) - write(b) - - read(a) - write(a) - read(b) - write(b) Transazioni Atomiche Concorrenti 60 Se dobbiamo eseguire n transazioni abbiamo n! possibili serial schedule Ci interessano le schedule non seriali, che però siano equivalenti ad una schedule seriale Schedule non seriali =:= schedule in cui le transazioni si sovrappongono in tempo almeno in parte.

21 7.9.4 Transazioni Atomiche Concorrenti 61 Quando sono possibili e ancora corrette? Operazioni O i T i, O j T j sono dette conflittuali sse accedono allo stesso dato e almeno una delle due è una write Operazioni non conflittuali possono essere eseguite in ordine scambiato senza modificare l effetto finale =:= scambio non conflittuale Transazioni Atomiche Concorrenti 62 Se con una serie di scambi non conflittuali si ottiene una schedule seriale allora la schedule di partenza è conflict serializable è equivalente ad una seriale è una valida esecuzione ha maggior parallelismo! Transazioni Atomiche Concorrenti 63 Esempio di conflitto in una schedule non seriale T 0 T 1 read(a) - write(a) - conflitto - read(a) - write(a) non read(b) - conflitto write(b) - - read(b) - write(b)

22 64 Protocollo di Locking Per assicurare serializzabilità associamo un lock ad ogni dato e seguiamo una regola di comportamento (=:=protocollo) per acquisire i lock prima di accedere alle variabili Come nel caso di lettori/scrittori: lockcondiviso per leggere lockesclusivo per scrivere Stranamente, rilasciare il lock subito dopo l ultimo accesso ad un dato può produrre non serializzabilità 65 Protocollo di locking a due fasi fase di crescita: si acquisiscono lock ma non se ne rilascia nessuno fase di assottigliamento: si rilasciano lock ma non se ne acquisisce nessuno la transazione è costituita da una sola crescita seguita da un solo assottigliamento appena si fa un rilascio non si può che continuare a rilasciare 66 Protocollo di locking a due fasi Può dare deadlock Non produce tutte le possibili schedule serializzabili (quindi alcune schedule con parallelismo maggiore non vengono generate/permesse)

23 67 Protocolli basati su Timestamp Determinare in anticipo (prima che a runtime) l ordinamento fra le operazioni delle transazioni associare a T i un timestamp TS(T i ) Timestamp totalmente ordinati, assegnati dal sistema alla partenza di ogni T i TS: clock di sistema o contatore logico 68 Protocolli basati su Timestamp Se TS(T i ) < TS(T j ) allora la schedule non seriale deve essere equivalente alla seriale (T i ; T j ) Ad ogni dato Q associare W_TS(Q) =:= il max TS di ogni T i che ha eseguito con successo write(q), e R_TS(Q) =:= il max TS di ogni T i che ha eseguito con successo read(q). NB: valori da tenere aggiornati a run-time 69 Protocolli basati su Timestamp Logica: far fallire quelle operazioni che farebbero acquisire alla transazione dati sbagliati (attraverso la read) o invaliderebbero dati già acquisiti per la write. Se quando tento di leggere ho che TS < W_TS(Q), i dati che leggo sono sbagliati

24 70 Protocolli basati su Timestamp Se quando tento di scrivere ho che TS < R_TS(Q), i dati che sovrascrivo sono stati letti e presi per buoni da un altra transazione Quando posso eseguire l operazione il R_TS o W_TS di Q viene aggiornato Quando l operazione fallisce, la transazione è abortita, rolled-back e deve essere ritentata, ma questa volta avrà un TS maggiore! 71 T 0 (TS=10) T 1 (TS=15) read(a) R_TS(A) = 10 - write(a) W_TS(A) = read(a) R_TS(A) = 15 - write(a) W_TS(A) = 15 T0 prima di T1: OK! T1 prima di T0 : abort di T0

6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale

6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale 45 6.6 Regioni Critiche Condizionali 6.7 Monitor Costrutti linguistici inventati per evitare i problemi di programmazione che facilmente si fanno con i semafori Attenzione con i thread: in tale ambiente

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

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

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

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

6. Sincronizzazione dei Processi. 6.1 introduzione. 6.1 Esempio: Produttore - Consumatore con n elementi 1 6. Sincronizzazione dei Processi Introduzione Il Problema della Sezione Critica Sincronizzazione via hardware Semafori Problemi Classici di Sincronizzazione 6.1 introduzione 2 Più processi possono cooperare

Dettagli

Condivisione. Sistemi Operativi Giuseppe Prencipe. Es.: produttore -- consumatore. Es.: produttore -- consumatore. Es.: produttore -- consumatore

Condivisione. Sistemi Operativi Giuseppe Prencipe. Es.: produttore -- consumatore. Es.: produttore -- consumatore. Es.: produttore -- consumatore Sistemi Operativi Giuseppe Prencipe Sincronizzazione dei Processi Condivisione I processi di un SO possono cooperare Tipicamente condividono dati e file Si rendono necessari meccanismi che garantiscano

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

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

Sistemi operativi. Lez. 9: primitive per la concorrenza i semafori

Sistemi operativi. Lez. 9: primitive per la concorrenza i semafori Sistemi operativi Lez. 9: primitive per la concorrenza i semafori Disabilitazione interrupt Due processi possono trovarsi in sezione critica simultaneamente solo perché chi vi è entrato per primo è stato

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

Sistemi operativi Sincronizzazione fra processi

Sistemi operativi Sincronizzazione fra processi Sistemi operativi 2003-2004 Sincronizzazione fra processi Introduzione I processi devono poter comunicare tra loro in modo strutturato e preciso Per passarsi informazioni Per non interferire con gli altri

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

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

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

Cooperazione tra Processi

Cooperazione tra Processi Cooperazione tra Processi Principi Il problema della sezione critica: le race condition Supporto hardware Semafori Monitor Scambio di messaggi Barriere Cos è la concorrenza? È un tema centrale nella progettazione

Dettagli

Meccanismi di sincronizzazione: Semafori e Monitor

Meccanismi di sincronizzazione: Semafori e Monitor Meccanismi di sincronizzazione: Semafori e Monitor 1 Introduzione Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura

Dettagli

SEMAFORI. Semaforo. s--; Il valore di un semaforo s è legato al numero delle operazioni wait e signal eseguite su di esso dalla relazione:

SEMAFORI. Semaforo. s--; Il valore di un semaforo s è legato al numero delle operazioni wait e signal eseguite su di esso dalla relazione: Semaforo SEMAFORI Una variabile di tipo semaforico viene definita come una variabile intera non negativa, cui è possibile accedere solo tramite le due operazioni wait e signal definite nel seguente modo:

Dettagli

Controllo di concorrenza. concorrenza 1

Controllo di concorrenza. concorrenza 1 Controllo di concorrenza concorrenza 1 I vantaggi della concorrenza sul server (1 cpu, 1 disco, 1 sistema di trasmissione) è possibile il parallelismo tra: elaborazione :cpu (c) operazioni di I/O: disco

Dettagli

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale Introduzione Meccanismi di sincronizzazione: Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura di programmi

Dettagli

La mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione

La mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione La (dai sistemi concorrenti ai sistemi distribuiti) Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Sincronizzazione dei processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Sincronizzazione dei processi Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Il problema

Dettagli

Sistemi Operativi. 6 LEZIONE SINCRONIZZAZIONE DEI PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. 6 LEZIONE SINCRONIZZAZIONE DEI PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 6 LEZIONE SINCRONIZZAZIONE DEI PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

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

Sistemi operativi. Lez. 6: primitive per la concorrenza e semafori

Sistemi operativi. Lez. 6: primitive per la concorrenza e semafori Sistemi operativi Lez. 6: primitive per la concorrenza e semafori Supporto alla concorrenza L algoritmo di Peterson consente una soluzione del problema della concorrenza che non richiede alcun presupposto

Dettagli

Mutua Esclusione A B. Esempi di mutua esclusione

Mutua Esclusione A B. Esempi di mutua esclusione Mutua Esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i

Dettagli

Mutua Esclusione. Esempi di mutua esclusione

Mutua Esclusione. Esempi di mutua esclusione Mutua Esclusione Esempi di mutua esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le

Dettagli

SISTEMI OPERATIVI. Semafori. Semafori

SISTEMI OPERATIVI. Semafori. Semafori SISTEMI OPERATIVI 04.a Semafori Semafori Approfondimento sulla mutua escluone Manipolazione di risorse mutex Strategie di soluzione Lock e Un Primitive semaforiche 1 Approfondimento sulla mutua escluone

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

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Sincronizzazione Inconsistenza di dati condivisi: i rischi dell'interleaving nei processi concorrenti La race condition Il problema della "sezione critica" dei processi concorrenti e la soluzione

Dettagli

Mutua Esclusione A" B"

Mutua Esclusione A B Mutua Esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i

Dettagli

Indice. Modelli di comunicazione tra processi (IPC) Strumenti di programmazione per IPC

Indice. Modelli di comunicazione tra processi (IPC) Strumenti di programmazione per IPC Indice Modelli di comunicazione tra processi (IPC) Strumenti di programmazione per IPC Interazione tra processi Interferenza e Mutua Esclusione Problemi di IPC: Produttore-Consumatore Modelli di IPC Processo:

Dettagli

Sincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Specifiche Le soluzioni software al problema della si basano sull utilizzo di variabili

Dettagli

Capitolo 7: Sincronizzazione

Capitolo 7: Sincronizzazione Capitolo 7: Sincronizzazione Il problema della sincronizzazione. Il problema della sezione critica. Hardware per la sincronizzazione. Semafori. Problemi classici di sincronizzazione. Monitor (cenni). 7.1

Dettagli

MUTUA ESCLUSIONE. Esempi di mutua esclusione

MUTUA ESCLUSIONE. Esempi di mutua esclusione MUTUA ESCLUSIONE Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i

Dettagli

GESTIONE DELLE TRANSAZIONI

GESTIONE DELLE TRANSAZIONI GESTIONE DELLE TRANSAZIONI Transazioni! L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS! Poiché gli accessi al disco sono frequenti e relativamente lenti, è

Dettagli

Sistemi operativi. Lez. 6/7: primitive per la concorrenza e semafori

Sistemi operativi. Lez. 6/7: primitive per la concorrenza e semafori Sistemi operativi Lez. 6/7: primitive per la concorrenza e semafori Supporto alla concorrenza L algoritmo di Peterson consente una soluzione del problema della concorrenza che non richiede alcun presupposto

Dettagli

Mutua Esclusione Il problema della mutua esclusione non si sovrappongano nel tempo Nessun vincolo è imposto sull ordine

Mutua Esclusione Il problema della mutua esclusione non si sovrappongano nel tempo Nessun vincolo è imposto sull ordine Mutua Esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i

Dettagli

Esecuzione concorrente di transazioni

Esecuzione concorrente di transazioni Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che

Dettagli

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Sincronizzazione. Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzioni hardware al problema della SC possono essere classificate

Dettagli

Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione. Soluzioni ai problemi di Mutua EsclusionePrimitive di sincronizzazione

Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione. Soluzioni ai problemi di Mutua EsclusionePrimitive di sincronizzazione Soluzioni ai problemi di Mutua Esclusione Primitive di sincronizzazione Soluzioni basate su primitive di sincronizzazione Le primitive di sincronizzazione piú comuni sono: Lock (mutex) - realizzati in

Dettagli

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche 5.1 Implementazione dei monitor con i semafori Un monitor è un tipo di

Dettagli

Sincronizzazione dei processi

Sincronizzazione dei processi Sincronizzazione dei processi Sincronizzazione dei processi Introduzione Il problema della sezione critica Hardware di sincronizzazione Semafori Problemi classici di sincronizzazione Monitor Esempi di

Dettagli

Trasparenze del Corso di Sistemi Operativi

Trasparenze del Corso di Sistemi Operativi Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in TWM A.A. 2014/15 Trasparenze del Corso di Sistemi Operativi Marina Lenisa Università di Udine Copyright c 2000-04 Marino Miculan (miculan@dimi.uniud.it)

Dettagli

Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12

Mutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12 Mutua esclusione Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Accesso concorrente alle risorse Consideriamo un sistema in cui N processi vogliono accedere

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

Lab 2: Sincronizzazione diretta/indiretta in Java

Lab 2: Sincronizzazione diretta/indiretta in Java Dept. of Computer Science Lab 2: Sincronizzazione diretta/indiretta in Java Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Esercizi

Dettagli

ARCHITETTURE DEI CALCOLATORI Multiprocessori: : L approccio Transactional Memory

ARCHITETTURE DEI CALCOLATORI Multiprocessori: : L approccio Transactional Memory ARCHITETTURE DEI CALCOLATORI Multiprocessori: : L approccio Transactional Memory Mariagiovanna Sami 1 I limiti della cache coherence e della sincronizzazione lock-based Problema più grave: viene col vero

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

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

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

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

Sistemi Operativi 20 giugno 2013 Compito B

Sistemi Operativi 20 giugno 2013 Compito B Si risponda ai seguenti quesiti, giustificando le risposte. Gli esercizi e le domande marcate con l asterisco (*) devono essere svolti soltanto da chi ha in piano di studi l esame di da 9 o 12 CFU. 1.

Dettagli

Sincronizzazione Le sezioni scritiche

Sincronizzazione Le sezioni scritiche Sincronizzazione Le sezioni scritiche Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Ambiente di sviluppo Concorrenza e sincronizzazione Programmazione concorrente (tramite

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

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 12 Alberto Ceselli ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 21 Aprile 2007 Concorrenza a livello di

Dettagli

Sistemi Operativi. IPC: Inter-Process Communication

Sistemi Operativi. IPC: Inter-Process Communication Sistemi Operativi IPC: Inter-Process Communication A.A. 2018-2019 Competizione per le risorse (Race Condition) Regioni critiche 1. No two processes may be simultaneously inside their critical regions 2.

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 S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite

Dettagli

Algoritmo di Dekker. Algoritmo di Peterson

Algoritmo di Dekker. Algoritmo di Peterson shared int turn = P; shared boolean needp = false; shared boolean needq = false; cobegin P // Q coend Riassunto Utile Concorrenza Algoritmo di Dekker process P { needp = true; while (needq) if (turn ==

Dettagli

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

Sistemi Operativi e Laboratorio, Prova del 10/4/2018 compito A Nome: Cognome: Matricola: corso: fila: posto: sercizio 1 (5 punti) Uno spool di stampa di un sistema multithread che gestisce due stampanti fisiche, è organizzato con un thread gestore che gestisce le

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

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

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

Dettagli

Interazione tra Processi

Interazione tra Processi Interazione tra Processi 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono indipendenti se l esecuzione di ognuno non è in alcun modo influenzata dall altro.

Dettagli

Struttura dei Sistemi di Calcolo

Struttura dei Sistemi di Calcolo Struttura dei Sistemi di Calcolo Operazioni dei sistemi di calcolo Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione hardware Invocazione del Sistema Operativo 1 Architettura

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 Produttoree consumatorecon memorialimitata Utilizzaun

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

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

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

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

Sincronizzazione tra processi

Sincronizzazione tra processi Sincronizzazione tra processi Sommario Introduzione Problema della sezione critica Consistenza dei dati Soluzioni basate su attesa attiva (busy waiting) Metodi software Metodi hardware Semafori Primitive

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

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

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

Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi.

Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi. Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni

Dettagli

Monitor [Hoare 74] Uso del monitor

Monitor [Hoare 74] Uso del monitor Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni

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

Chiamata di procedura remota

Chiamata di procedura remota Chiamata di procedura remota Meccanismo di comunicazione e sincronizzazione tra processi in cui un processo che richiede un servizio ad un altro processo rimane sospeso fino al completamento del servizio

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Sistemi Operativi A Parte III - Sincronizzazione

Sistemi Operativi A Parte III - Sincronizzazione Cooperazione e competizione tra processi (1) Sistemi Operativi A Parte III - Sincronizzazione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Due o più processi possono interagire

Dettagli

Processi Interagenti L interazione puo` avvenire mediante due meccanismi: Comunicazione: scambio di informazioni tra i processi interagenti.

Processi Interagenti L interazione puo` avvenire mediante due meccanismi: Comunicazione: scambio di informazioni tra i processi interagenti. Interazione tra Processi Processi Interagenti L interazione puo` avvenire mediante due meccanismi: Comunicazione: scambio di informazioni tra i processi interagenti. P1 Sincronizzazione: imposizione di

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

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

Sistemi Operativi e Laboratorio, Prova del 5/4/2016

Sistemi Operativi e Laboratorio, Prova del 5/4/2016 Nome: Cognome: Matricola: fila: posto: corso: 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

Sincronizzazione Soluzioni hardware

Sincronizzazione Soluzioni hardware Sincronizzazione Soluzioni hardware Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Soluzioni hardware Le soluzionihardware al problemadellasc possono essere classificate

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

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente Sistemi Operativi Lez. 6: Problemi classici della programmazione concorrente Produttore e consumatore Uno dei problemi classici della programmazione concorrente è il problema del produttore consumatore.

Dettagli

ARCHITETTURA DI UN B.D.M.S. Parte III Il Controllo di Affidabilità

ARCHITETTURA DI UN B.D.M.S. Parte III Il Controllo di Affidabilità ARCHITETTURA DI UN B.D.M.S. Parte III Il Controllo di Affidabilità Michele de Nittis Generalità Il controllo di affidabilità (CA) è quel servizio che provvede a garantire le proprietà di atomicità e persistenza

Dettagli

Architettura degli Elaboratori 2. Concetti preliminari (1) Concetti preliminari (2) Concetti preliminari (3) Grafo di allocazione delle risorse

Architettura degli Elaboratori 2. Concetti preliminari (1) Concetti preliminari (2) Concetti preliminari (3) Grafo di allocazione delle risorse Architettura degli Elaboratori 2 Esercitazione 2 Scheduling: grafo di allocazione delle risorse Synchronization: comunicazione tra processi A. Memo - 2005 Concetti preliminari () L esecuzione dei programmi

Dettagli

Sushi bar problem. The Little Book of Semaphores by Allen B. Downey

Sushi bar problem. The Little Book of Semaphores by Allen B. Downey Sushi bar problem The Little Book of Semaphores by Allen B. Downey http://greenteapress.com/semaphores/ 1 Sushi bar problem Immaginiamo di avere un sushi bar con 5 sedie. Se un cliente arriva e c'è una

Dettagli

PROGRAMMAZIONE CONCORRENTE

PROGRAMMAZIONE CONCORRENTE PROGRAMMAZIONE CONCORRENTE 1 The Art of Multiprocessor Programming Maurice Herlihy & Nir Shavit 2 Mutual Exclusion Problema essenziale della programmazione concorrente Come si dimostrano proprieta di astrazioni

Dettagli

Sincronizzazione dei processi

Sincronizzazione dei processi Sincronizzazione dei processi Sincronizzazione dei processi Background Il problema della sezione critica Hardware di sincronizzazione Semafori Problemi classici di sincronizzazione Monitor 6.2 Background

Dettagli

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7. Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7. Modulo 1 - Architettura del calcolatore Unità 1 - Architettura e funzionamento dei sistemi di elaborazione Lezione 1 - Macchina

Dettagli

Obie0vi SINCRONIZZAZIONE DEI PROCESSI

Obie0vi SINCRONIZZAZIONE DEI PROCESSI SISTEMI OPERATIVI SINCRONIZZAZIONE DEI PROCESSI Obie0vi» Introduzione al problema della sezione cri

Dettagli

Sistemi Operativi e Laboratorio, Prova del 15/01/2014

Sistemi Operativi e Laboratorio, Prova del 15/01/2014 Cognome e nome: Matricola: Corso [A/B] : fila: posto: Esercizio 1 (4 punti) Si consideri un processore che dispone dei registri speciali PC (program counter), PS (program status) e SP (stack pointer),

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 20 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 14 Maggio 2013 Programmazione concorrente:

Dettagli

Azioni atomiche. Definizioni. Proprietà

Azioni atomiche. Definizioni. Proprietà Azioni atomiche Definizioni Azione atomica: strumento di alto livello per strutturare programmi concorrenti e/o distribuiti, tolleranti a vari tipi di malfunzionamenti; o Realizzata con strumenti linguistici

Dettagli

ESERCIZIO SincrAmbGlob-1

ESERCIZIO SincrAmbGlob-1 ESERCIZI DI SINCRONIZZAZIONE TRA THREAD CON SEMAFORI ESERCIZIO SincrAmbGlob-1 Si consideri un sistema nel quale è definito il semaforo sem1 e i thread P1, P2 e P3. Al tempo t il semaforo sem1 ha la seguente

Dettagli