Deadlock. Oggi c è un traffico tremendo. Operating System Concepts 9 th Edition

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Deadlock. Oggi c è un traffico tremendo. Operating System Concepts 9 th Edition"

Transcript

1 Deadlock

2 Deadlock Il problema del deadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei deadlock Prevenire i deadlock Evitare i deadlock Rilevare i deadlock Ripristino da situazioni di deadlock Oggi c è un traffico tremendo 7.2 Silberschatz, Galvin and Gagne 2013

3 Il problema del deadlock 1 In un ambiente multiprogrammato più processi possono entrare in competizione per ottenere un numero finito di risorse Deadlock o stallo insieme di processi bloccati: ciascun processo possiede (almeno) una risorsa ed attende di acquisire una o più risorse allocate ad altri processi dell insieme (che detengono risorse, ma ne attendono altre) Nella programmazione multithread gli stalli si verificano più frequentemente, poiché più thread possono competere per un insieme di risorse condivise 7.3 Silberschatz, Galvin and Gagne 2013

4 Il problema del deadlock 2 Esempio 1 Nel sistema sono presenti due stampanti P 1 e P 2 si sono assicurati una stampante ciascuno ed entrambi richiedono anche l altra Esempio 2 Semafori A e B, inizializzati a 1: P 1 P 2 1) wait (A); 2) wait(b); 3) wait (B); 4) wait(a); 7.4 Silberschatz, Galvin and Gagne 2013

5 Esempio: attraversamento di un ponte In ogni istante, sul ponte possono transitare autoveicoli solo in una direzione Ciascuna sezione del ponte può essere immaginata come una risorsa Se si verifica un deadlock (come in figura), il recovery può essere effettuato se un auto torna indietro (rilascia la risorsa ed esegue un roll back) In generale, in caso di deadlock, può essere necessario che più auto debbano tornare indietro È possibile si verifichi starvation (attesa indefinita) 7.5 Silberschatz, Galvin and Gagne 2013

6 Esempio: leggi ferroviarie in Kansas Testo della legge approvata dalla legislazione del Kansas (inizi XX secolo): Quando due treni convergono ad un incrocio, ambedue devono arrestarsi, e nessuno dei due può ripartire prima che l altro si sia allontanato 7.6 Silberschatz, Galvin and Gagne 2013

7 Modello di sistema Tipi di risorse R 1,R 2,,R m Cicli di CPU, spazio di memoria, file, dispositivi di I/O Ciascun tipo di risorsa R i ha W i istanze Il protocollo di accesso alle risorse da parte dei processi prevede Richiesta se la richiesta non può essere soddisfatta immediatamente, causa diverso utilizzo della risorsa, il processo richiedente deve attendere fino al rilascio della risorsa da parte del processo che la detiene Utilizzo Rilascio Richiesta/rilascio realizzati con apposite system call, quali request/release device, open/close file, allocate/ free memory, wait/signal semaforo 7.7 Silberschatz, Galvin and Gagne 2013

8 Caratterizzazione del deadlock Una situazione di deadlock può verificarsi solo se valgono simultaneamente le seguenti condizioni Mutua esclusione: nel sistema, esiste almeno una risorsa non condivisibile, cioè utilizzabile da un solo processo alla volta Possesso ed attesa: un processo, che possiede almeno una risorsa, attende di acquisire ulteriori risorse possedute da altri processi Impossibilità di prelazione: una risorsa può essere rilasciata dal processo che la possiede solo volontariamente, al termine del suo utilizzo Attesa circolare: esiste un insieme {P 0,P 1,,P n } di processi in attesa, tali che P 0 è in attesa di una risorsa che è posseduta da P 1, P 1 è in attesa di una risorsa posseduta da P 2,, P n 1 è in attesa di una risorsa posseduta da P n e P n è in attesa di una risorsa posseduta da P Silberschatz, Galvin and Gagne 2013

9 Grafo di assegnazione delle risorse 1 Un grafo è costituito da un insieme di vertici (o nodi) V variamente connessi per mezzo di un insieme di archi E Nel grafo di assegnazione delle risorse L insieme V è partizionato in due sottoinsiemi: P {P 1,P 2,,P n } è l insieme costituito da tutti i processi del sistema R {R 1,R 2,,R m } è l insieme di tutti i tipi di risorse del sistema Arco di richiesta: P i R j Arco di assegnazione: R j P i 7.9 Silberschatz, Galvin and Gagne 2013

10 Grafo di assegnazione delle risorse 2 Processo Tipo di risorsa con 4 istanze P i richiede un istanza di R j P i Arco di richiesta R j P i possiede un istanza di R j P i Arco di assegnazione R j 7.10 Silberschatz, Galvin and Gagne 2013

11 Esempi di grafo di assegnazione risorse 1 Grafo di assegnazione risorse Grafo di assegnazione risorse con deadlock 7.11 Silberschatz, Galvin and Gagne 2013

12 Esempi di grafo di assegnazione risorse 2 Se il grafo non contiene cicli Non ci sono deadlock Se il grafo contiene un ciclo Se vi è una sola istanza per ogni tipo di risorsa, allora si ha un deadlock Se si hanno più istanze per tipo di risorsa, allora il deadlock è possibile (ma non certo) Grafo di assegnazione risorse con un ciclo, ma privo di deadlock Il ciclo c è, ma il deadlock no 7.12 Silberschatz, Galvin and Gagne 2013

13 Esempio 1 Si consideri un sistema con tre processi (P 1,P 2,P 3 ), e due tipologie di risorse (R 1,R 2 ), con la disponibilità di due risorse di tipo R 1 e una risorsa di tipo R 2 Si consideri la seguente cronologia di richieste: P 2 richiede R 1 P 1 richiede R 2 P 2 richiede R 2 P 3 richiede R 1 P 1 richiede R 1 Verificare se il sistema si trova in stallo 7.13 Silberschatz, Galvin and Gagne 2013

14 Esempio 1 (cont.) P 2 richiede R 1 P 1 richiede R 2 P 2 richiede R 2 P 3 richiede R 1 P 1 richiede R 1 P 1 R 1 P 2 P 3 Si forma un ciclo ma il sistema NON è in stallo Infatti un elemento del ciclo (R 1 ) ha molteplicità 2 e una delle due istanze è fuori dal ciclo: P 3 può terminare e rilasciare una istanza di R 1 che viene così assegnata a P 1 R Silberschatz, Galvin and Gagne 2013

15 Esempio 2 Si consideri un sistema con 4 processi (P 1,P 2,P 3,P 4 ) e 4 tipologie di risorse (R 1,R 2,R 3,R 4 ) con disponibilità: 1 risorsa di tipo R 1 1 risorsa di tipo R 2 1 risorsa di tipo R 3 2 risorse di tipo R 4 Si assuma che: ogni volta che un processo richiede una risorsa libera, questa venga assegnata al processo richiedente ogni volta che un processo richiede una risorsa già occupata, il richiedente deve attendere che la risorsa si liberi prima di impossessarsene (coda FIFO di attesa) 7.15 Silberschatz, Galvin and Gagne 2013

16 Esempio 2 (cont.) Si consideri la seguente successione cronologica di richieste e rilasci di risorse e si verifichi se, alla fine, il sistema si trova in stallo: P 2 richiede R 1,R 2,R 3 P 3 richiede R 2,R 4 R 1 R 2 P 2 rilascia R 2 P 1 P 2 P 3 P 4 P 4 richiede R 4 P 1 richiede R 1 P 2 richiede R 2 R 3 R 4 P 3 richiede R 3 Ciclo di richieste/assegnazioni che coinvolge P 2, R 2, P 3, R 3 il sistema è in stallo 7.16 Silberschatz, Galvin and Gagne 2013

17 Metodi di gestione del deadlock Assicurare che il sistema non entri mai in uno stato di deadlock Prevenire i deadlock: evitare che si verifichino contemporaneamente mutua esclusione, possesso e attesa, impossibilità di prelazione e attesa circolare Basso utilizzo delle risorse e throughput ridotto Evitare i deadlock: evitare gli stati del sistema a partire dai quali si può evolvere verso il deadlock Informazioni aggiuntive sulle richieste dei processi Permettere al sistema di entrare in uno stato di deadlock, quindi ripristinare il sistema Determinare la presenza di un deadlock Ripristinare il sistema da un deadlock Ignorare il problema e fingere che i deadlock non si verifichino mai; impiegato dalla maggior parte dei SO, inclusi Windows e UNIX/Linux 7.17 Silberschatz, Galvin and Gagne 2013

18 Prevenire i deadlock 1 Limitare le modalità di richiesta/accesso delle/alle risorse Mutua esclusione non è richiesta per risorse condivisibili non possono essere coinvolte in uno stallo; deve valere invece per risorse che non possono essere condivise, quindi non può essere prevenuta Possesso e attesa occorre garantire che, quando un processo richiede una risorsa, non ne possieda altre Esigere dal processo di stabilire ed allocare tutte le risorse necessarie prima che inizi l esecuzione, o consentire la richiesta di risorse solo quando il processo non ne possiede alcuna Basso impiego delle risorse; possibile l attesa indefinita per processi con forti richieste di risorse 7.18 Silberschatz, Galvin and Gagne 2013

19 Prevenire i deadlock 2 Impossibilità di prelazione Se un processo, che possiede alcune risorse, richiede un altra risorsa, che non gli può essere allocata immediatamente, allora rilascia tutte le risorse possedute Le risorse rilasciate (prelazionate al processo) vengono aggiunte alla lista delle risorse che il processo sta attendendo Il processo viene avviato nuovamente solo quando può ottenere sia le risorse precedentemente possedute sia quelle attualmente richieste Alternativamente, le risorse possono essere assegnate al processo che le richiede, qualora siano attualmente possedute da un altro processo in attesa Protocollo adatto per risorse il cui stato si può salvare e recuperare facilmente (registri, memoria; non per dispositivi di I/O) 7.19 Silberschatz, Galvin and Gagne 2013

20 Prevenire i deadlock 3 Attesa circolare si impone un ordinamento totale (possibilmente logico ) su tutti i tipi di risorsa, f : R N, e si pretende che ciascun processo richieda le risorse in ordine crescente In alternativa, ogni processo, prima di richiedere una istanza di R j, deve rilasciare tutte le istanze di R i, tali che f(r i ) f(r j ) Supponiamo che, avendo imposto l ordinamento suddetto, si verifichi comunque l attesa circolare Siano {P 1,P 2,,P n } i processi coinvolti nell attesa circolare, dove P i attende la risorsa R i posseduta dal processo P i+1 Poiché il processo P i+1 possiede la risorsa R i mentre richiede la risorsa R i+1, i, vale la condizione f(r 1 ) f(r 2 ) f(r n ) f(r 1 ) assurdo 7.20 Silberschatz, Galvin and Gagne 2013

21 Esempio di deadlock /* thread_one esegue in questa funzione */ void *do_work_one(void *param) { } pthread_mutex_lock(&first_mutex); pthread_mutex_lock(&second_mutex); /* Fa qualcosa */ pthread_mutex_unlock(&second_mutex); pthread_mutex_unlock(&first_mutex); pthread_exit(0); /* thread_two esegue in questa funzione */ void *do_work_two(void *param) { } pthread_mutex_lock(&second_mutex); pthread_mutex_lock(&first_mutex); /* Fa qualcosa */ pthread_mutex_unlock(&first_mutex); pthread_mutex_unlock(&second_mutex); pthread_exit(0); Si risolve imponendo, per es., f (first_mutex)=1 f (second_mutex)=3 e forzando l invocazione dei lock mutex in ordine crescente 7.21 Silberschatz, Galvin and Gagne 2013

22 Evitare i deadlock Prevenire i deadlock può causare scarso utilizzo dei dispositivi e ridotta produttività del sistema Viceversa, evitare i deadlock presuppone che il sistema conosca a priori informazioni addizionali sulle richieste future dei processi Il modello più semplice e utile richiede che ciascun processo dichiari il numero massimo di risorse di ciascun tipo di cui potrà usufruire nel corso della propria esecuzione L algoritmo di deadlock avoidance esamina dinamicamente lo stato di allocazione delle risorse per assicurare che non si possa verificare mai una condizione di attesa circolare Lo stato di allocazione delle risorse è definito dal numero di risorse disponibili ed allocate, e dal massimo numero di richieste dei processi 7.22 Silberschatz, Galvin and Gagne 2013

23 Stato sicuro 1 Quando un processo richiede una risorsa disponibile, il sistema deve decidere se l allocazione immediata lasci il sistema in stato sicuro Il sistema si trova in uno stato sicuro se esiste una sequenza sicura di esecuzione di tutti i processi La sequenza <P 1,P 2,,P n > è sicura se, per ogni P i, le risorse che P i può ancora richiedere possono essergli allocate sfruttando le risorse disponibili, più le risorse possedute da tutti i P j, con j i 7.23 Silberschatz, Galvin and Gagne 2013

24 Cioè Stato sicuro 2 Se le richieste di P i non possono essere soddisfatte immediatamente, allora P i può attendere finché tutti i P j (j<i) abbiano terminato Quando P j ha terminato, P i può ottenere le risorse richieste, eseguire i suoi compiti, restituire le risorse allocate e terminare Quando P i termina, P i+1 può ottenere le risorse richieste, etc Silberschatz, Galvin and Gagne 2013

25 Stato sicuro 3 Se un sistema è in stato sicuro non si evolve verso il deadlock Se un sistema è in stato non sicuro si può evolvere in deadlock In stato non sicuro, il SO non può impedire ai processi di richiedere risorse in modo da causare un deadlock Deadlock avoidance garantisce che un sistema non evolva mai verso uno stato non sicuro se un processo richiede una risorsa disponibile, può dovere attendere scarso utilizzo delle risorse del sistema 7.25 Silberschatz, Galvin and Gagne 2013

26 Stato sicuro 4 Esempio 12 istanze di una risorsa complessivamente disponibili Al tempo t 0 Processo Richiesta max Unità possedute P P P unità disponibili Stato sicuro: <P 1, P 0, P 2 > sequenza sicura Se all istante t 1 il processo P 2 richiede un ulteriore unità, e questa gli viene assegnata, lo stato diventa non sicuro (solo P 1 può terminare) 7.26 Silberschatz, Galvin and Gagne 2013

27 Algoritmi per evitare il deadlock Risorse ad istanza singola: utilizzo del grafo di assegnazione delle risorse (versione modificata) Risorse ad istanza multipla: algoritmo del banchiere 7.27 Silberschatz, Galvin and Gagne 2013

28 Algoritmo con grafo di assegnazione risorse 1 Un arco di reclamo P i R j (rappresentato da una linea tratteggiata) indica che il processo P i può richiedere la risorsa R j in futuro Un arco di reclamo viene convertito in un arco di richiesta quando il processo P i richiede effettivamente la risorsa R j Un arco di richiesta viene convertito in un arco di assegnazione quando la risorsa viene allocata al processo Quando una risorsa viene rilasciata da un processo, l arco di assegnazione viene riconvertito in un arco di reclamo 7.28 Silberschatz, Galvin and Gagne 2013

29 Algoritmo con grafo di assegnazione risorse 2 Le risorse devono venir reclamate a priori nel sistema Prima che il processo P i inizi l esecuzione, tutti i suoi archi di reclamo devono essere già inseriti nel grafo di assegnazione delle risorse Alternativamente, un arco di reclamo può essere aggiunto successivamente al processo P i se esso è connesso al grafo solo mediante archi di reclamo Supponiamo che il processo P i richieda una risorsa R j La richiesta può essere accordata solo se la conversione dell arco di richiesta in arco di assegnamento non provoca il formarsi di un ciclo nel grafo di assegnazione delle risorse 7.29 Silberschatz, Galvin and Gagne 2013

30 Algoritmo con grafo di assegnazione risorse 3 Grafo di assegnazione risorse Stato non sicuro Stallo se P 1 richiede R Silberschatz, Galvin and Gagne 2013

31 Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di assegnazione risorse) Ciascun processo deve dichiarare a priori il massimo impiego di risorse Quando un processo richiede una risorsa può non venir servito istantaneamente Quando ad un processo vengono allocate tutte le risorse deve restituirle in tempo finito 7.31 Silberschatz, Galvin and Gagne 2013

32 Strutture dati dell algoritmo del banchiere Sia n il numero dei processi presenti nel sistema ed m il numero dei tipi di risorse Available: Vettore di lunghezza m; se Available[j] k, vi sono k istanze disponibili del tipo di risorsa R j Max: matrice n m; se Max[i,j] k, il processo P i può richiedere al più k istanze del tipo di risorsa R j Allocation: matrice n m; se Allocation[i,j] k, a P i sono attualmente allocate k istanze di R j Need: matrice n m; se Need[i,j] k, P i può richiedere k ulteriori istanze di R j per completare il proprio task Need[i,j] Max[i,j] Allocation[i,j] 7.32 Silberschatz, Galvin and Gagne 2013

33 Algoritmo di verifica della sicurezza 1. Siano Work e Finish vettori di lunghezza m ed n, rispettivamente; si inizializzi a) Work Available b) Finish[i] false, per i 1,2,,n 2. Si cerchi i tale che valgano contemporaneamente: a) Finish[i] false b) Need i Work Se tale i non esiste, si esegua il passo Work Work Allocation i Finish[i] true si torni al passo Se Finish[i] true per ogni i, il sistema è in stato sicuro 7.33 Silberschatz, Galvin and Gagne 2013

34 Algoritmo di richiesta delle risorse per il processo P i Sia Request i il vettore delle richieste per il processo P i Se Request i [j] k, il processo P i richiede k istanze del tipo di risorsa R j 1. Se Request i Need i, si vada al passo 2.; altrimenti, si riporti una condizione di errore, poiché il processo ha ecceduto il massimo numero di richieste 2. Se Request i Available, si vada al passo 3.; altrimenti P i deve attendere, poiché le risorse non sono disponibili 3. Il sistema simula l allocazione a P i delle risorse richieste, modificando lo stato di allocazione come segue: Available Available Request i Allocation i Allocation i Request i Need i Need i Request i Se lo stato è sicuro, le risorse vengono definitivamente allocate a P i Se lo stato è non sicuro, P i deve attendere, e viene ripristinato il vecchio stato di allocazione delle risorse 7.34 Silberschatz, Galvin and Gagne 2013

35 Esempio di applicazione dell algoritmo del banchiere 5 processi, da P 0 a P 4 3 tipi di risorse: A (10 istanze), B (5 istanze) e C (7 istanze) Istantanea al tempo T 0 : Allocation Max Available A B C A B C A B C P P P P P Silberschatz, Galvin and Gagne 2013

36 Esempio (cont.) La matrice Need è definita come Need Max Allocation Need A B C P P P P P Il sistema è in stato sicuro, dato che la sequenza <P 1,P 3,P 4,P 2,P 0 > soddisfa i criteri di sicurezza 7.36 Silberschatz, Galvin and Gagne 2013

37 Esempio (cont.) P 1 richiede (1,0,2) Verificare che Request 1 Available (cioè, (1,0,2) (3,3,2)) Allocation Need Available A B C A B C A B C P P P P P L esecuzione dell algoritmo di sicurezza mostra che la sequenza <P 1,P 3,P 4,P 0,P 2 > soddisfa i requisiti di sicurezza La richiesta di P 1 viene soddisfatta immediatamente Ma dopo Può essere soddisfatta la richiesta di P 4 per (3,3,0)? Può essere soddisfatta la richiesta di P 0 per (0,2,0)? 7.37 Silberschatz, Galvin and Gagne 2013

38 Rilevamento del deadlock Si permette al sistema di entrare in uno stato di deadlock Per ripristinarne le funzionalità, sono necessari un algoritmo di rilevamento del deadlock e, successivamente, un algoritmo di ripristino dal deadlock Costi aggiuntivi per la memorizzazione delle informazioni necessarie al ripristino e per l esecuzione dell algoritmo di rilevamento 7.38 Silberschatz, Galvin and Gagne 2013

39 Istanza singola di ciascun tipo di risorsa Si impiega un grafo di attesa I nodi rappresentano i processi L arco P i P j esiste se P i è in attesa che P j rilasci una risorsa che gli occorre Periodicamente viene richiamato un algoritmo che verifica la presenza di cicli nel grafo (che deve essere conservato e mantenuto aggiornato) La presenza di un ciclo attesta una situazione di deadlock Un algoritmo per rilevare cicli in un grafo richiede un numero di operazioni dell ordine di n 2, dove n è il numero di vertici del grafo 7.39 Silberschatz, Galvin and Gagne 2013

40 Grafo di assegnazione risorse e grafo di attesa Un arco P i P j esiste nel grafo di attesa se e solo se il corrispondente grafo di assegnazione risorse contiene i due archi P i R q, R q P j per una qualche risorsa R q Grafo di assegnazione risorse Grafo di attesa corrispondente 7.40 Silberschatz, Galvin and Gagne 2013

41 Più istanze per ciascun tipo di risorsa Available: vettore di lunghezza m, indica il numero di risorse disponibili di ciascun tipo Allocation: matrice n m, definisce il numero di risorse di ciascun tipo attualmente allocate a ciascun processo Request: matrice n m, indica la richiesta corrente di ciascun processo; se Request[i,j] k, il processo P i richiede k istanze supplementari della risorsa R j L algoritmo di rilevamento indaga su ogni possibile sequenza di assegnazione per i processi da completare 7.41 Silberschatz, Galvin and Gagne 2013

42 1. Siano Work e Finish due vettori di lunghezza m e n, rispettivamente; inizialmente sia: a) Work Available b) Per i 1,2,,n, se Allocation i 0, Finish[i] false; altrimenti, Finish[i] true 2. Si trovi un indice i tale che valgano entrambe le condizioni: a) Finish[i] false b) Request i Work Se tale i non esiste, si vada al passo Work Work Allocation i Finish[i] true si vada al passo 2. Algoritmo di rilevamento 1 4. Se Finish[i] false, per qualche i, 1 i n, il sistema è in uno stato di deadlock; inoltre, se Finish[i] false, P i è in deadlock 7.42 Silberschatz, Galvin and Gagne 2013

43 Algoritmo di rilevamento 2 Note L algoritmo richiede un numero di operazioni dell ordine di O (m n 2 ) per determinare se il sistema è in uno stato di deadlock Si ipotizza (ottimisticamente) che P i non intenda richiedere altre risorse per completare il proprio compito, ma piuttosto che restituisca in tempo finito quelle che già possiede Se ciò non accade, può verificarsi uno stallo, che verrà rilevato alla prossima verifica sul sistema 7.43 Silberschatz, Galvin and Gagne 2013

44 Esempio di applicazione dell algoritmo di rilevamento 5 processi, da P 0 a P 4 3 tipi di risorse: A (7 istanze), B (2 istanze) e C (6 istanze) Istantanea al tempo T 0 : Allocation Request Available A B C A B C A B C P P P P P La sequenza <P 0,P 2,P 1,P 3,P 4 > conduce a Finish[i] true per ogni i 7.44 Silberschatz, Galvin and Gagne 2013

45 Esempio (cont.) P 2 richiede un istanza supplementare della risorsa C Request A B C P P P P P Qual è lo stato del sistema? Può reclamare le risorse possedute dal processo P 0, ma il numero di risorse disponibili non è sufficiente a soddisfare gli altri processi deadlock: coinvolge i processi P 1, P 2, P 3 e P Silberschatz, Galvin and Gagne 2013

46 Impiego dell algoritmo di rilevamento Quando e quanto spesso richiamare l algoritmo di rilevamento dipende da: Frequenza (presunta) con la quale si verificano i deadlock Numero di processi che vengono eventualmente influenzati dal deadlock (e sui quali occorre effettuare un roll back) Almeno un processo per ciascun ciclo Se l algoritmo viene richiamato con frequenza casuale, possono essere presenti molti cicli nel grafo delle risorse non si può stabilire quale dei processi coinvolti nel ciclo abbia causato il deadlock Alternativamente, l algoritmo può essere richiamato ogni volta che una richiesta non può essere soddisfatta immediatamente, a intervalli regolari, o quando l utilizzo della CPU scende al di sotto del 40% 7.46 Silberschatz, Galvin and Gagne 2013

47 Ripristino dal deadlock: terminazione dei processi Terminazione in abort di tutti i processi in deadlock Terminazione in abort di un processo alla volta fino all eliminazione del ciclo di deadlock In quale ordine si decide di terminare i processi? I fattori significativi sono: La priorità del processo Il tempo di computazione trascorso e il tempo ancora necessario al completamento del processo Quantità e tipo di risorse impiegate (non/facilmente prelazionabili) Risorse ulteriori necessarie al processo per terminare il proprio compito Numero di processi che devono essere terminati Tipo di processo: interattivo o batch 7.47 Silberschatz, Galvin and Gagne 2013

48 Ripristino dal deadlock: prelazione di risorse Selezione di una vittima È necessario stabilire l ordine di prelazione per minimizzare i costi Roll back Un processo a cui sia stata prelazionata una risorsa deve ritornare ad uno stato sicuro, da cui ripartire Per non mantenere troppe informazioni aggiuntive, la soluzione più semplice consiste nel terminare il processo Starvation Alcuni processi possono essere sempre selezionati come vittime della prelazione: includere il numero di roll back nel fattore di costo 7.48 Silberschatz, Galvin and Gagne 2013

49 Esercizio 1 Sia dato il sistema descritto da P insieme dei processi, R insieme delle risorse R ij di indice i e molteplicità j, E(P) insieme delle richieste di accesso a risorse in R emesse da processi in P e attualmente pendenti, e E(R) insieme degli accessi attualmente soddisfatti di processi in P a risorse in R: P {P 1, P 2, P 3, P 4, P 5, P 6 } R {R 12, R 21, R 32, R 41 } E(P) {P 2 R 2, P 3 R 4, P 4 R 1, P 5 R 4, P 6 R 3 } E(R) {R 1 (P 1,P 2 ), R 2 P 3, R 3 (P 4,P 5 ), R 4 P 6 } Si analizzi il grafo di allocazione delle risorse, determinando se il sistema si trovi attualmente in situazione di stallo o meno Si studi l evoluzione successiva dello stato del sistema se il processo P 1 richiedesse la risorsa R Silberschatz, Galvin and Gagne 2013

50 Esercizio 2 Si consideri la situazione in cui vi siano in esecuzione cinque processi, P 0, P 1, P 2, P 3 e P 4, con le matrici relative alle risorse allocate ed al numero massimo di risorse richieste dai processi definite come segue: ( ) ( Allocation Max Se il vettore delle risorse disponibili è Available (1,0,1,0,1), ) lo stato appena descritto è sicuro? Cosa accadrebbe se il processo P 0 richiedesse e ottenesse un ulteriore istanza della risorsa del primo tipo? 7.50 Silberschatz, Galvin and Gagne 2013

51 Esercizio 3 Si consideri la situazione in cui vi siano in esecuzione quattro processi, P A, P B, P C e P D, con le matrici relative alle risorse allocate ed al numero massimo di risorse richieste dai processi definite come segue: ( ) ( ) Allocation Max Se il vettore delle risorse disponibili è Available (0,0,x,1,1), qual è il minimo valore di x che rende lo stato attuale sicuro? 7.51 Silberschatz, Galvin and Gagne 2013

52 Fine del Capitolo 7

Stallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Stallo di processi. Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Stallo di processi Definizione del problema e modellizzazione Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Stallo (deadlock) Condizione di stallo (deadlock) Un P/T richiede

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

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

Deadlock (stallo) Risorse. Uso delle risorse. Parte III. Deadlock

Deadlock (stallo) Risorse. Uso delle risorse. Parte III. Deadlock Deadlock (stallo) Parte III Deadlock Su di un tavolo ci sono un piatto ed una forchetta A e B sono seduti al tavolo, per mangiare ciascuno dei due ha bisogno sia del piatto che della forchetta Sciagurata

Dettagli

1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia

1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia 1. Quali sono le componenti principali dei sistemi operativi? 2. Si descriva il meccanismo attraverso cui i programmi in esecuzione richiamano i servizi dei sistemi operativi. 1. Le componenti principali

Dettagli

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata Lezione R9 I NPCS Sistemi embedded e real-time 4 dicembre 2012 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R9.1 Di cosa parliamo in questa

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

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 II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Deadlock Tecniche di gestione del deadlock: 1. Caratterizzazione del deadlock

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

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

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

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

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

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

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

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

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

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

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

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007 2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si

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

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

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

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

Quote of the day. (Meditate, gente, meditate...)

Quote of the day. (Meditate, gente, meditate...) Lezione T26 Deadlock Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

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

Le risorse. Se il processo può essere forzato a rilasciare una risorsa, la risorsa è chiamata prerilasciabile.

Le risorse. Se il processo può essere forzato a rilasciare una risorsa, la risorsa è chiamata prerilasciabile. Le risorse Cos è una risorsa? E' qualcosa di necessario al processo per poter procedere nella sua evoluzione (passaggi di stato). Si possono distinguere: Risorse fisiche (processore, memoria, disco, stampante,...)

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

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Dettagli

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di Lezione 3 Sistemi Operativi e misure di performance Parleremo di Ambienti di Elaborazione e Natura della computazione Classi di Sistemi Operativi Efficienza, Performance del Sistema, e Servizi Utente Sistemi

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

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

L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata.

L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Transazioni L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Una transazione è una astrazione per un DBMS

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

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Sistemi Operativi Il Sistema Operativo Windows (parte 2) Sistemi Operativi Il Sistema Operativo Windows (parte 2) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gestione della memoria 1 Ogni processo dispone

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

SCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1

SCD. Correttezza temporale. Correttezza temporale. Premesse 2. Politiche di ordinamento 1. Premesse 1 Premesse 2 Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD I sistemi a tempo reale devono assicurare correttezza temporale oltre che funzionale

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

Soluzioni degli esercizi di formulazione di PL{0, 1}

Soluzioni degli esercizi di formulazione di PL{0, 1} Soluzioni degli esercizi di formulazione di PL{0, 1} Salvatore Nocella 12 febbraio 2007 1 Al lavoro Due operai devono eseguire un certo numero di lavori J = {1,..., n}, ciascuno della durata di un ora.

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

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

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 Esercizio 1 Si risolva con il metodo branch-and-bound il seguente problema di PLI max x 1 + x 4x 1 + x + x = 0 x 1 + x + x 4 = x 1, x, x, x 4 0 x 1, x,

Dettagli

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Lezione 11 Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Ordinamento degli eventi Un sistema monoprocessore Unico clock Unica memoria Ordinamento degli eventi Mutua esclusione Deadlock

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

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

Una breve introduzione all implementazione in C di algoritmi su grafo

Una breve introduzione all implementazione in C di algoritmi su grafo Una breve introduzione all implementazione in C di algoritmi su grafo A cura di Gianmaria Leo Introduzione La lezione è un introduzione a concetti e strumenti che permettono l implementazione di algoritmi

Dettagli

Note sulle Catene di Markov

Note sulle Catene di Markov Note sulle Catene di Markov ELAUT Prof. Giuseppe C. Calafiore Sommario Queste note contengono un estratto schematico ridotto di parte del materiale relativo alle Catene di Markov a tempo continuo e a tempo

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

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore

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

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

Il file È un insieme di informazioni: programmi. Il File System. Il file system Il File System Il file È un insieme di informazioni: programmi d a t i testi rappresentati come insieme di record logici (bit, byte, linee, record, etc.) Ogni file è individuato da (almeno) un nome simbolico

Dettagli

Il Sistema Operativo Concorrenza e Grafi di precedenza

Il Sistema Operativo Concorrenza e Grafi di precedenza ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Elaborazione concorrente Elaborazione sequenziale Elaborazione concorrente Elaborazione parallela Grafi di Precedenza Grafi di

Dettagli

2.3.3 Cammini ottimi nei grafi senza circuiti

2.3.3 Cammini ottimi nei grafi senza circuiti .. Cammini ottimi nei grafi senza circuiti Sia un grafo G = (N, A) orientato senza circuiti e una funzione di costo che assegna un valore c ij R ad ogni arco (i, j) A circuito Proprietà I nodi di un grafo

Dettagli

La gestione della memoria dinamica Heap

La gestione della memoria dinamica Heap Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti

Dettagli

Introduzione ai grafi

Introduzione ai grafi TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale

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

Parametri Formali di una Funzione e Record di Attivazione

Parametri Formali di una Funzione e Record di Attivazione Parametri Formali di una Funzione e Attivazione Un record di attivazione rappresenta il mondo di una funzione, e contiene tutto ciò che ne caratterizza l esistenza, tra cui ad esempio: le variabili locali

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Sincronizzazione Semafori Si considerino tre processi (A, B e C) i quali devono eseguire alcune operazioni

Dettagli

Sistemi Operativi 9 luglio 2013 Compito

Sistemi Operativi 9 luglio 2013 Compito 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 Sistemi Operativi

Dettagli

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si

Dettagli

Sistemi Operativi Gestione della Memoria (parte 1)

Sistemi Operativi Gestione della Memoria (parte 1) Sistemi Operativi Gestione della Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Considerazioni preliminari 1 Nell ottica degli utenti applicativi

Dettagli

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Informatica Generale 06 - Introduzione ai Sistemi Operativi Informatica Generale 06 - Introduzione ai Sistemi Operativi Cosa vedremo: Funzionalità dei sistemi operativi Bootstrap Stato utente e stato supervisore Componenti di un Sistema Operativo Cos è un sistema

Dettagli

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

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

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

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

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

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

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Dettagli

Input/output. Sistemi Operativi Lez.14. Corso: Sistemi Operativi Danilo Bruschi A.A. 2006/2007

Input/output. Sistemi Operativi Lez.14. Corso: Sistemi Operativi Danilo Bruschi A.A. 2006/2007 Input/output Sistemi Operativi Lez.14 Ruolo del SO Le periferiche di I/O sono i dispositivi attraverso i quali un calcolatore scambia dati/interagisce con la realtà esterna Per ogni periferica collegata

Dettagli

2.2 Scheduling in Linux

2.2 Scheduling in Linux Appunti di Sistemi Operativi 28 2.2 Scheduling in Linux In generale, i processi possono essere classificati secondo due schemi: CPU bound vs. I/O bound; interattivi vs. batch vs. real-time. Le due classi

Dettagli

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill) Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base

Dettagli

CORSO DI Principi di Sistemi Operativi (1? anno Corso di Laurea Specialistica in Ingegneria Informatica) ANNO ACCADEMICO

CORSO DI Principi di Sistemi Operativi (1? anno Corso di Laurea Specialistica in Ingegneria Informatica) ANNO ACCADEMICO CORSO DI Principi di Sistemi Operativi (1? anno Corso di Laurea Specialistica in Ingegneria Informatica) ANNO ACCADEMICO 2008-2009 Prof. Letizia Leonardi OBIETTIVI FORMATIVI: L'obiettivo del corso è di

Dettagli

istruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso

istruzioni eseguite in ordine predeterminabile in base al codice del programma e dei valori dei dati in ingresso Programmazione Concorrente sequenze critiche e mutua esclusione istruzioni atomiche deadlock sincronizzazione e semafori settembre 2009 programmazione concorrente 1 modello di esecuzione sequenziale istruzioni

Dettagli

Struttura Logica del S.O:

Struttura Logica del S.O: Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005! Struttura dei File! Unitaʼ logica di memorizzazione! Collezione di informazioni correlate! File control block (inode) struttura dati per le informazioni principali riguardanti un file! Fle system! risiede

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

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

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix. I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

Capitolo 2: Strutture dei sistemi di calcolo

Capitolo 2: Strutture dei sistemi di calcolo Capitolo 2: Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Struttura delle reti di calcolatori

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

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

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

Dettagli

Spazio di indirizzamento virtuale

Spazio di indirizzamento virtuale Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){

Dettagli

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java

Decima Esercitazione. Accesso a risorse condivise tramite Monitor Java Decima Esercitazione Accesso a risorse condivise tramite Monitor Java 1 Agenda Esempio 1 La banca: gestione di una risorsa condivisa da più thread, con politica prioritaria Esercizio 2 da svolgere Accesso

Dettagli

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

14 Struttura della memoria secondaria Struttura del disco Struttura del disco 14 Struttura della memoria secondaria 1 Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Affidabilità 2 14.1 Struttura del disco 3 14.1 Struttura del disco I dischi

Dettagli

Scheduling della CPU. Capitolo 6 - Silberschatz

Scheduling della CPU. Capitolo 6 - Silberschatz Scheduling della CPU Capitolo 6 - Silberschatz Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione della

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente Routing Introduzione Il livello 3 della pila ethernet ha il compito di muovere i pacchetti dalla sorgente attraversando più sistemi Il livello di network deve quindi: Scegliere di volta in volta il cammino

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

Cosa sono i semafori?

Cosa sono i semafori? Semafori Cosa sono i semafori? I semafori sono primitive fornite dal sistema operativo per permettere la sincronizzazione tra processi e/o thread. Semafori di mutua esclusione con i thread POSIX 2 Operazioni

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

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. Modulo 6: Gestione risorse e deadlock

Sistemi Operativi. Modulo 6: Gestione risorse e deadlock Sistemi Operativi Modulo 6: Gestione risorse e deadlock Renzo Davoli Alberto Montresor Copyright Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation

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