Deadlock. Oggi c è un traffico tremendo. Operating System Concepts 9 th Edition
|
|
- Gaspare Molteni
- 6 anni fa
- Visualizzazioni
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 2 Stallo (deadlock) Condizione di stallo (deadlock) Un P/T richiede
DettagliSistemi 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.
DettagliSistemi 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
DettagliDeadlock (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
Dettagli1. 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
DettagliMarco 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
Dettagli1. 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.
DettagliSistemi 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
DettagliSistemi 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
DettagliSincronizzazione. 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
Dettagliil 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
Dettagli6.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
DettagliLe 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
DettagliSommario. 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
DettagliScheduling 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
DettagliModelli 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
DettagliModelli 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
DettagliConcetto 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
DettagliScheduling 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
DettagliTEORIA 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
DettagliSincronizzazione 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
DettagliSISTEMI 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
DettagliSistemi 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),
DettagliPROCESSI 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
DettagliCapitolo 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
DettagliUniversità 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
DettagliQuote 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
DettagliInformatica 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
DettagliLe 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,...)
DettagliJava 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
DettagliAlberi 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
DettagliLezione 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
DettagliChiamata 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
DettagliIl 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
DettagliL'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
DettagliTECN.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
DettagliSistemi 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
DettagliEsercizi 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
DettagliSCD. 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
DettagliUniversità 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
DettagliSoluzioni 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.
DettagliRappresentazione 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
DettagliSincronizzazione. 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
DettagliCOMPITO 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,
DettagliOrdinamento 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
DettagliESERCIZIO 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
DettagliSEMAFORI 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
DettagliUna 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
DettagliNote 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
DettagliMonitor. 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.
DettagliLezione 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
DettagliEsercizi 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
DettagliCAPITOLO 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ù
DettagliIl 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
DettagliIl 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
Dettagli2.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
DettagliLa 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
DettagliIntroduzione 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
DettagliSistemi 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
DettagliParametri 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
DettagliSistemi 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
DettagliSistemi 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
DettagliALGORITMI 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
DettagliSistemi 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
DettagliInformatica 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
DettagliIl 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
DettagliCAPITOLO 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
DettagliSistemi 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
Dettagli11.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)
DettagliSistemi 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
DettagliArray 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
DettagliInput/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
Dettagli2.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
DettagliGrafi: 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
DettagliCORSO 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
Dettagliistruzioni 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
DettagliStruttura 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!
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
DettagliMonitor [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
DettagliMonitor [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
DettagliI 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
DettagliCapitolo 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
DettagliMatlab. 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
Dettagli1. 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
DettagliSpazio 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 (){
DettagliCLASSIFICAZIONE 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.
DettagliAlgoritmi, 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
DettagliDecima 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
Dettagli14 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
DettagliScheduling 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
DettagliFondamenti 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
DettagliCORSO 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
DettagliIntroduzione. 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
DettagliOperazioni 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
DettagliCosa 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
DettagliIl 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à
DettagliSISTEMI 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
DettagliSistemi 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
DettagliI 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