Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti"

Transcript

1 Dai sistemi concorrenti ai sistemi distribuiti

2 Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti processi. In tutt e due questi tipi di sistemi, l effetto della concorrenza puo minacciare non solo la correttezza di un algoritmo ma anche il suo progresso globale e locale. La peculiarità però dei sistemi distribuiti rispetto a quelli concorrenti è la comunicazione a scambio di messaggi In seguito, per mettere in evidenza la relazione tra sistemi concorrenti e distribuiti utilizzeremo un benchmark problem, fondamentale in entrambi i sistemi : la mutua esclusione Differentemente dai sistemi concorrenti, i sistemi distribuiti hanno, oltre ad una differente modalità di comunicazione dei processi, l effetto dei guasti parziali che puo minacciare anch esso correttezza e progresso In seguito per mettere in evidenza l effetto dei guasti parziali studieremo: Comunicazione punto-punto Comunicazioni uno a molti (broadcast) Il problema del Consenso e Leader Election Comunicazioni ordinate dai sistemi concorrenti ai sistemi distribuiti 1

3 Specifica di un Problema Si ha un problema che deve essere risolto in un sistema distribuito (concorrente) attraverso un algoritmo deterministico Il problema è espresso tramite una specifica: insieme di proprietà che ricadono in due classi fondamentali: Safety (nothing bad will happen). Definisce quali sono i comportamenti ammissibili. Se un algoritmo soddisfa questa proprietà non esibirà mai un comportamento non ammesso. Liveness (something good will eventually happen). Ha a che fare col concetto di progresso del sistema. Un algoritmo che soddisfa safety è anche un algoritmo che non esegue alcuna azione (in questo modo di certo non esibisce alcun comportamento non ammesso. In questo caso il concetto di liveness impone all algoritmo di eseguire prima o poi (eventually) delle azioni. Un problema può essere risolvibile (ovvero si può definire un algoritmo deterministico che soddisfi la specifica) in alcuni modelli di sistema in modo semplice, in altri modelli in modo più complesso. Lo stesso problema puo essere risolvibile in un sistema ed impossibile da risolvere in un altro. dai sistemi concorrenti ai sistemi distribuiti 2

4 La mutua esclusione dai sistemi concorrenti ai sistemi distribuiti 3

5 Mutua esclusione e sistemi concorrenti La mutua esclusione nasce nei sistemi concorrenti. Abbiamo n processi che vogliono accedere ad una risorsa condivisa Ogni algoritmo di mutua esclusione comprende: - una sottosequenza di istruzioni chiamata sezione critica, l esecuzione della sezione critica consiste nell accesso alla risorsa condivisa. - una sottosequenza di istruzioni che precedono la sezione critica, questa sequenza è chiamata trying protocol - una sottosequenza di istruzioni che seguono la sezione critica, questa sequenza è chiamata exit protocol Avversario: scheduler sceglie di volta in volta l istruzione da eseguire di un certo processo, la sequenza scelta comprendente tutte le istruzioni dei diversi processi è chiamata schedule dai sistemi concorrenti ai sistemi distribuiti 4

6 Mutua esclusione- specifica del problema Definizione del problema in termini di tre proprietà: ME (Mutua Esclusione): due processi non possono essere nelle loro sezioni critiche contemporaneamente Proprietà di Safety ND (No Deadlock): se un processo rimane bloccato nella sua trying section, ci sono uno o piu processi che riescono ad accedere alla sezione critica NS (No Starvation) [OPTIONAL]: nessun processo puo rimanere bloccato nella trying section per sempre Proprietà di Liveness dai sistemi concorrenti ai sistemi distribuiti 5

7 Sistema concorrente - modello di Dijkstra Il modello concorrente definito da Dijkstra prevede che: I processi comunichino leggendo e scrivendo variabili condivise La lettura e scrittura di una variabile sia un azione atomica (non interrompibile: se lo scheduler seleziona un istruzione di lettura/scrittura, l istruzione viene completata senza essere interrotta dall esecuzione di altre istruzioni) Non ci sia alcuna assunzione sul tempo che impiega ogni processo ad eseguire un azione atomica (es. un processo esegue una lettura molto lentamente mentre un altro esegue una lettura molto velocemente) dai sistemi concorrenti ai sistemi distribuiti 6

8 Algoritmo di Dijkstra (1965) Shared variables b[1,..n]: array of Boolean, initially all true c[1,..n]: array of Boolean, initially all true k: integer in range 1,..N, initially any value in its range Local variables j: integer in range 1,..N il processo si prenota trying protocol ciclo della sentinella: la sentinella k seleziona uno dei processi prenotati il processo precedentemente prenotato occupa il processo controlla se ci sono conflitti: almeno un altro processo che ha occupato exit protocol dai sistemi concorrenti ai sistemi distribuiti 7

9 Un possibile schedule (initially k=4) b[1]:= false si è prenotato) if k 1 then P1 P2 P3 (P1 segnala agli altri che begin c [1]:= true (sblocca una sua eventuale occupazione ) b[2]:= false if k 2 then begin c [2]:= true b[3]:= false if k 3 then begin c [3]:= true if b[4] (se P4 non si è prenotato) if b[4] (se P4 non si è prenotato) if b[4] then k:=1 then k:=2 then k:=3 K è passato ad assumere il nome di uno dei processi che si è prenotato dai sistemi concorrenti ai sistemi distribuiti 8

10 Cosa è successo? Alla fine di questa parte di schedule la situazione è la seguente: - la prossima istruzione da eseguire per tutti i processi è l istruzione Li1, che però è true solo per P3 poiché il valore di k=3 - A questo punto P3 occupa (istruzione Li4), gli altri non occupano e vedono che P3 è comunque prenotato, quindi lasciano inalterato il valore di k. Ora P3 entra in sezione (vedi prossima slide) critica perché non rileva conflitti (altri processi che occupano la variabile c). Quando P3 rilascia la sezione critica, rilascia sia la variabile c che b, significa che P1 e P2 rimasti nella trying section prima del ciclo della sentinella possono ora provare a passare il ciclo della sentinella. dai sistemi concorrenti ai sistemi distribuiti 9

11 Continuiamo lo schedule P1 P2 P3 begin c[3]:=false (occupa) for j:= 1 to n do if i j and not c[j] then goto Li1 sezione critica c[3]:=b[3:= true; Da questo schedule sembra che il primo che passa il ciclo della sentinella è anche il primo ad entrare in sezione critica. In realtà questo accade solo se non ci sono conflitti (nessun processo che ha contemporaneamente occupato), Nel caso di conflitto l ordine di entrata in sezione critica lo decide lo scheduler (vedi prossima slide) dai sistemi concorrenti ai sistemi distribuiti 10

12 Continuiamo lo schedule if k 1 then begin c [1]:= true P1 P2 P3 if b[3] (è true, P3 ha rilasciato la CS) then k:=1 if k 1 else begin c [1]:= false (occupa) if i j and not c[j] then goto Li1 if k 2 then begin c [2]:= true if b[3] then k:=2 if k 2 else begin c [2]:= false (occupa) if i j and not c[j] then goto Li1 Nel caso di conflitto (almeno due processi che occupano allo stesso tempo), si torna indietro e si sgombra cancellando le occupazioni, ma uno di loro la mantiene in particolare quello che aveva posto il suo nome su K PER ULTIMO (P2) dai sistemi concorrenti ai sistemi distribuiti 11

13 Sistemi concorrenti: un modello piu debole Abbiamo visto il modello concorrente definito da Dijkstra in cui è possibile che piu processi scrivano e leggano in modo atomico nella/dalla stessa variabile. Questo è un modello che astrae bene sistemi con una sola memoria fisica ma non sistemi multiprocessori con memoria locali In sistemi multiprocessori potremmo avere copie di una stessa variabile su macchine diverse Nota che nell algoritmo di Dijkstra, il ciclo della sentinella funziona basandosi di fatto su meccanismi hardware che organizzano un accesso in mutua esclusione alla memoria fisica (variabile k) dai sistemi concorrenti ai sistemi distribuiti 12

14 Sistema concorrente - modello di Lamport Il modello concorrente definito da Lamport prevede che: I processi comunichino leggendo e scrivendo variabili condivise la lettura e la scrittura di una variabile non sia un azione atomica. Uno scrittore potrebbe scrivere mentre un altro processo sta leggendo Ogni variabile condivisa sia di proprietà di un processo: una variabile condivisa puo essere scritta da un solo processo (il proprietario), gli altri la possono solo leggere Nessun processo possa emettere due scritture concorrentemente La velocità di esecuzione dei processi sono non correlate. In un tempo infinito ogni processo esegue un numero infinito di passi elementari mentre in un tempo finito ne esegue un numero finito dai sistemi concorrenti ai sistemi distribuiti 13

15 Algoritmo del Panettiere (Lamport 1975) Shared variable num[1,..n]: array of integer, initially all 0 choosing[1,..n]: array of Boolean, initially all false %process i owns num[i] and choosing[i]% Local variable j: integer in range 1,..N repeat 1 NCS 2 choosing[i]:= true trying protocol exit protocol 3 num[i]:= 1+ max {num [j] : n! j!1} %DOORWAY% 4 choosing[i]:= false 5 for j:= 1 to n do begin 6 while choosing[j] do skip 7 while num[j] "0 and {num[j], j } < {num[i],i} do skip %BAKERY% 8 end 9 CS 10 num[i]:=0; forever dai sistemi concorrenti ai sistemi distribuiti 14

16 Panettiere - doorway Nella DOORWAY, ogni processo Pi che entra nella trying section lo segnala agli altri grazie alla variabile choosing[i]. Quindi deve prendere un numero di prenotazione, per farlo PRIMA legge tutti i numeri scelti dagli altri prima di lui, quindi prende il massimo e aggiunge uno ATTENZIONE: altri insieme a Pi possono accedere alla doorway concorrentemente! dai sistemi concorrenti ai sistemi distribuiti 15

17 Una run R1 possibile per la doorway P1 choosing[i]:= true P1 legge sicuramente il valore scritto da P2 perchè non vi è concorrenza fra le due operazioni num[1]:=1+max {num[j]:3 j 1 P1 potrenne leggere come no il valore finale scritto da P3 perchè le due operazioni sono concorrenti, in questa run non lo legge NUM[1]=2 P2 choosing[i]:= true NUM[2]=1 num[2]:=1+max {num[j]:3 j 1 P3 choosing[i]:= true num[3]:=1+max {num[j]:3 j 1 NUM[3]=2 durante la concorrenza, P3 potrebbe leggere il valore finale scritto da P2 oppure no, in questa run lo legge dai sistemi concorrenti ai sistemi distribuiti 16

18 Panettiere - bakery Una volta uscito dalla doorway il processo Pi deve assicurarsi che tra i processi che sono in attesa lui è il prossimo ad entrare nella sezione critica, i cicli while a line 7 e 8 hanno esattamente questo scopo: while choosing [j] do skip: Pi si assicura che ogni processo che concorrentemente con lui è acceduto alla doorway completi la scrittura del numero: finchè c è qualcuno che sta ancora scegliendo, Pi aspetta while num[j] 0 and {num[j], j } < {num[i],i} do skip: il processo Pi si assicura che tutti i processi che concorrentemente sono in procinto di accedere all CS abbiano un numero piu grande del suo oppure uguale ma identificativo di processo piu grande: finchè c è qualcuno con un numero più piccolo, Pi aspetta dai sistemi concorrenti ai sistemi distribuiti 17

19 Una run R1 possibile per il bakery P1 choosing[i]:= true NUM[1]=2 choosing[i]:= false while su num NUM[1]=0 P2 NUM[2]=1 choosing[i]:= false while su choosing NUM[2]=0 while su num P3 NUM[3]=2 while su choosing choosing[i]:= false qui si sblocca la while su choosing per P2 e P3, si noti come grazie a questa while i tre processi sono riallineati prima di comparare i numeri tra di loro while su num dai sistemi concorrenti ai sistemi distribuiti 18

20 Sistema distribuito (senza guasti) Rispetto al modello di Lamport si aggiunge il seguente vincolo: - un processo non puo leggere direttamente il valore delle variabili di proprietà degli altri processi, ma per leggere un valore di una variabile di un processo deve esplicitamente inviare un messaggio ed attendere una risposta che conterrà questo valore Formalmente la comunicazione tra processi avviene secondo le seguenti assunzioni: - i processi comunicano leggendo e scrivendo variabili attraverso scambi di messaggi. Il ritardo di trasmissione di un messaggio è impredicibile ma finito - I canali di comunicazione sono affidabili. Un messaggio inviato viene ricevuto correttamente dal suo destinatario. Correttamente significa che uno stesso messaggio non viene ricevuto due volte e che se un messaggio viene ricevuto allora è stato inviato da qualcuno dai sistemi concorrenti ai sistemi distribuiti 19

21 L approccio sbagliato: adattiamo il Bakery Local variable j: integer in range 1,..N; num: integer, initially all 0; choosing: Boolean, initially false; repeat 1 NCS 2 choosing:= true %inizio doorway% %inizio trying% 3 for j!i do 4 send num to pj 5 receive reply(v) from pj 6 num:=max(v,num) 7 num:= num+1 8 choosing:= false %fine doorway% dai sistemi concorrenti ai sistemi distribuiti 20

22 L approccio sbagliato: adattiamo il Bakery 1 for j:= 1 to n do begin %inizio bakery% 2 repeat 3 send choosing to pj 4 receive reply(v) from pj 5 until v 6 repeat 7 send num to pj 8 receive reply(v) from pj 9 until v=0 or {v, j } < {num,i} 10 end %fine bakery% %fine trying% 11 CS 12 num:=0; %exit protocol% forever dai sistemi concorrenti ai sistemi distribuiti 21

23 L approccio sbagliato: adattiamo il Bakery Thread di comuncazione: Upon the arrival of a num message from process j send reply(num) to process j Upon the arrival of a choosing message from process j send reply(choosing) to process j dai sistemi concorrenti ai sistemi distribuiti 22

24 Perchè non è una buona soluzione? In questo algoritmo il processo Pi si comporta da server rispetto alle proprie variabili num e choosing Ogni processo si limita a recuperare (leggere) i valori locali agli altri processi con una richiesta-reply Ciò implica che: - per ogni lettura abbiamo 2n messaggi scambiati - per entrare in sezione critica servono 3 scambi di messaggi (tre letture) che costano in totale 6n messaggi - la latenza per un singolo scambio di messaggi è uguale al tempo impiegato all accoppiata canale-processo piu lenti Fondamentalmente la LOCALITA dell informazione, crea un problema in piu rispetto ad un sistema concorrente dove le variabili sono comuni a tutti, problema che deve essere opportunamente affrontato con un design completamente diverso (sebbene i due sistemi abbiano molte caratteristiche in comune). dai sistemi concorrenti ai sistemi distribuiti 23

25 Algoritmo di Lamport (per sistema distribuito) L idea di base: - Il processo non acquisisce il numero dagli altri ma arriva con un numero già in tasca (AUTONOMIA) - Fa quindi una richiesta allegando questo numero. Gli altri processi gli dicono se puo entrare o no Modello di sistema - Assunzione aggiuntiva rispetto a no guasti, canali affidabili e asincronia: canali FIFO (se un processo Pi invia prima un messaggio m e poi un messaggio m, allora nessun processo consegna m se non ha già consegnato m) dai sistemi concorrenti ai sistemi distribuiti 24

26 Algoritmo di Lamport Ogni processo mantiene un clock logico scalare ed una coda (per memorizzare le richieste di accesso alla sezione critica). Regole dell algoritmo: - Richiesta sezione critica: Pi manda un messaggio di richiesta con il timestamp a tutti gli altri processi e aggiunge la coppia (richiesta,timestamp) alla coda locale - Ricezione di una richiesta: la richiesta (con il suo timestamp) sono memorizzati nella coda ed un messaggio di acknowledgment è inviato indietro - Accesso di Pi alla sezione critica se e solo se: - Pi ha una richiesta in coda con timestamp t - t è il timestamp più piccolo tra quelli presenti in coda - Pi ha già ricevuto da ogni altro processo una messaggio di acknowledgment con timestamp più grande di t - Rilascio sezione critica: Pi manda un msg di release a tutti gli altri ed elimina la richiesta dalla coda; - Ricezione di una release: la richiesta è eliminata dalla coda dai sistemi concorrenti ai sistemi distribuiti 25

27 Algoritmo di Lamport - esempio P1 1, id1 2, id1 3, id1 3, id1 5, id1 Tempo T : P2 ha ricevuto due ack con timestamp ([5,id3], [5,id1]) più grandi di quello relativo alla sua richiesta ([3,id2]) P2 P3 1, id2 1, id3 2, id2 5, id3 8, id2 3, id1 3, id1 T P2 ha in coda una richiesta con timestamp più piccolo ([3,id1]) P2 non può ancora accedere alla sezione critica! Messaggio di richiesta Coda locale Messaggio di ack Messaggio di release Messaggio generico dai sistemi concorrenti ai sistemi distribuiti 26

28 Algoritmo di Lamport - esempio 1, id1 P1 2, id1 3, id1 3, id1 5, id1 SC Tempo T : P1 ha ricevuto due ack con timestamp ([8,id2], [7,id3]) più grandi di quello relativo alla sua richiesta ([3,id1]) P2 1, id2 2, id2 3, id1 8, id2 P1 non ha in coda una richiesta con timestamp più piccolo di [3,id1] P3 1, id3 5, id3 3, id1 7, id3 T P1 accede alla sezione critica! Messaggio di richiesta Coda locale Messaggio di ack Messaggio di release Messaggio generico dai sistemi concorrenti ai sistemi distribuiti 27

29 Algoritmo di Lamport - esempio Tempo T : P2 ha ricevuto due ack con timestamp ([5,id3], [5,id1]) più grandi di quello relativo alla sua richiesta ([3,id2]) 3, id1 3, id1 5, id1 SC P2 riceve il msg di release da P1: elimina dalla coda la richiesta con timestamp [3,id1] 8, id2 SC P2 accede alla sezione critica! 3, id1 5, id3 7, id3 Messaggio di richiesta Coda locale 3, id1 Messaggio di ack Messaggio di release Messaggio generico dai sistemi concorrenti ai sistemi distribuiti 28 T

30 Algoritmo di Lamport - canali FIFO e ME Supponi per contraddizione che due processi Pi e Pj sono contemporaneamente in sezione critica 1. Il processo Pi ha inviato la sua richiesta a Pj e ottenuto un acknowledgment. Al momento in cui Pi ottiene un acknowledgement, Pj ha inserito la richiesta di Pi nella sua coda locale. 2. D altro canto lo stesso è accaduto per Pj: il processo Pj ha inviato la sua richiesta a Pi e ottenuto un acknowledgment. Al momento in cui Pj ottiene un acknowledgement, Pj ha inserito la richiesta di Pi nella sua coda locale. 3. Dalla proprietà di ordine totale dei timestamps (clock scalare+identificativo di processo) supponi senza perdita di generalità che la richiesta di Pi ha timestamp piu piccolo della richiesta di Pj. Pi Pj Pj Pi Pi Pj ack Pj ack Pj Pi Pj Pi MA questo scenario non si può verificare (violazione FIFO)! Pi Pj ack ack sc sc Per FIFO si vede che Pi e Pj hanno in coda tutt e due le richieste quando ricevono l ack dall altro. Dalla propietà di ordine totale dei timespamps si arriva subito ad una contraddizione. dai sistemi concorrenti ai sistemi distribuiti 29

31 Algoritmo di Lamport - proprietà L algoritmo di Lamport rispetta anche la proprietà di Fairness: Fairness: differenti richieste devono essere soddisfatte nell ordine in cui vengono fatte. - l ordine è stabilito dalla relazione happened-before: se due richieste sono ordinate rispetto all happened before allora l accesso alle sezione critica deve essere garantito in tale ordine. Se due richieste sono concorrenti rispetto all happened before l accesso può avvenire in qualsiasi ordine Performance: message complexity: richiede 3(N-1) per l invocazione di una sezione critica: N-1 messaggi di richiesta, N-1 messaggi di ack, N-1 messaggi di release time complexity: c è un tempo di ritardo di due messaggi per aver il permesso di accesso alla sezione critica dai sistemi concorrenti ai sistemi distribuiti 30

32 Esercizi Considerate l algoritmo di Dijkstra e rispondete alle seguenti domande: 1. La proprietà di Safety ME è garantita dall uso che si fa della variabile c. Spiegare il perché. 2. La proprietà di Liveness ND è garantita da un uso oppurtuno della variabile k. Spiegare il perché. 3. Un processo che setta con successo la variabile k quante volte puo eseguire l istruzione goto Li1 prima di entrare in sezione critica? 4. Perchè NS non è soddisfatta? Fornire un particolare schedule in cui si viola NS Considerate l algoritmo del panettiere di Lamport e rispondete alle seguenti domande, 1. Dire se la seguente affermazione è vera: se un processo i è nella doorway ed un processo j è nella bakery section allora {num[j], j } < {num[i],i}. Dire se questa è una condizione neccessaria o no o garantire ME. 2. Perché è soddisfatta NS? 3. L algoritmo del panettiere gode anche della proprietà FCFS. Perchè non vale la seguente (più intuitiva) nozione di FCFS: se il Pi entra nella doorway prima di Pj allora Pi entrerà in sezione critica prima di Pj. Considerate l algoritmo di Lamport per sistemi distribuiti. Tentando di combinare i messaggi di release e di acknowledgement, vedere se è possibile rinunciare all assunzione di canali FIFO. dai sistemi concorrenti ai sistemi distribuiti 31

Sincronizzazione nei Sistemi Distribuiti (parte 2)

Sincronizzazione nei Sistemi Distribuiti (parte 2) Università degli Studi di oma Tor Vergata Facoltà di Ingegneria Sincronizzazione nei Sistemi Distribuiti (parte 2) Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/0 Mutua esclusione

Dettagli

Indice dei Contenuti

Indice dei Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /24 Global State - 3 Mutua esclusione e sistemi concorrenti - 7 Algoritmi per la Mutua Esclusione - 10 Algoritmi basati su autorizzazioni

Dettagli

22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /24 Global State - 3 Mutua esclusione e sistemi concorrenti - 7 Algoritmi per la Mutua Esclusione - 10 Algoritmi basati su autorizzazioni

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

Sincronizzazione e coordinamento nel distribuito

Sincronizzazione e coordinamento nel distribuito Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti

Dettagli

corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti

corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti CdL MAGISTRALE in INFORMATICA A.A. 2015-16 corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti Prof. S.Pizzutilo Concorrenza fra processi remoti Interazioni fra processi

Dettagli

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

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

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

Sistemi Distribuiti soggetti a Guasti

Sistemi Distribuiti soggetti a Guasti Sistemi Distribuiti soggetti a Guasti Overview i guasti... Fino ad ora abbiamo assunto un modello di sistema senza guasti, abbiamo analizzato l effetto della concorrenza sugli algoritmi distribuiti (mutua

Dettagli

MODELLO AD AMBIENTE GLOBALE

MODELLO AD AMBIENTE GLOBALE MODELLI DI INTERAZIONE TRA PROCESSI Modello ad ambiente globale ( global environment ) Modello a scambio di messaggi ( message passing ) MODELLO AD AMBIENTE GLOBALE Il sistema è visto come un insieme di

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto Modello a scambio di messaggi type messaggio = record origine: ; destinazione: ; contenuto:

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Ordinamento causale e stati globali nei Sistemi Distribuiti. Moreno Marzolla

Ordinamento causale e stati globali nei Sistemi Distribuiti. Moreno Marzolla Ordinamento causale e stati globali nei Sistemi Distribuiti Moreno Marzolla E-mail: marzolla@dsi.unive.it Web: http://www.dsi.unive.it/~ marzolla Introduzione Supponiamo di avere una computazione distribuita

Dettagli

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

Dettagli

Concorrenza fra processi remoti

Concorrenza fra processi remoti 29/10/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 3. La concorrenza tra processi remoti nei sistemi distribuiti Riferimenti: Prof. S.Pizzutilo A.Tanenbaum,M.Van Steen Sistemi

Dettagli

22/05/2013. Indice dei Contenuti. Sincronizzazione dei Clock. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

22/05/2013. Indice dei Contenuti. Sincronizzazione dei Clock. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /26 Indice dei Contenuti Sincronizzazione dei Clock- 3 Orologi Fisici- 7 Sincronizzazione di Orologi Fisici- 10 Sincronizzazione dei Clock

Dettagli

TRANSAZIONI DISTRIBUITE TRANSAZIONI

TRANSAZIONI DISTRIBUITE TRANSAZIONI TRANSAZIONI DISTRIBUITE Transazioni distribuite Atomicità di una transazione distribuita Protocollo Two-Phase Commit Gestione dell affidabilità Fallimenti durante il 2PC Gestione della concorrenza Serializzabilità

Dettagli

Mutua esclusione distribuita

Mutua esclusione distribuita Sincronizzazione del clock Il clock di CPU distribuite non é sincronizzato Clock fisico (difficile) / Clock logico (semplice) In molti casi basta sincronizzare il clock logico Sincronizzazione del clock

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Capitolo 7: Sincronizzazione

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

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Sincronizzazione nei Sistemi Distribuiti

Sincronizzazione nei Sistemi Distribuiti Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Sincronizzazione nei Sistemi Distribuiti (parte ) Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 9/ La nozione di tempo

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Introduzione alla verifica automatica

Introduzione alla verifica automatica Sistemi digitali Introduzione alla verifica automatica Utilizzati in quasi tutte le attività umane Complessità elevata semplici sistemi hanno milioni di linee di codice Tempi di realizzazione sempre più

Dettagli

Meccanismi di sincronizzazione: Semafori e Monitor

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

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Il costrutto monitor [Hoare 74]

Il costrutto monitor [Hoare 74] Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry, o public) ad una struttura dati comune a più processi, tale che: Le operazioni

Dettagli

Esempio. chan request = [0] of { byte }; active proctype Server() { byte client; end: do :: request? client -> printf("client %d\n", client); od }

Esempio. chan request = [0] of { byte }; active proctype Server() { byte client; end: do :: request? client -> printf(client %d\n, client); od } Canali in Promela Sistemi distribuiti un sistema distribuito è costituito da un insieme di processi e un insieme di canali di comunicazione ogni processo rappresenta un nodo di computazione del sistema

Dettagli

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

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

Dettagli

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

Dettagli

Sommario. G. Piscitelli

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

Dettagli

I THREAD O PROCESSI LEGGERI Generalità

I THREAD O PROCESSI LEGGERI Generalità I THREAD O PROCESSI LEGGERI Generalità Thread: segmento di codice (funzione) Ogni processo ha un proprio SPAZIO DI INDIRIZZAMENTO (area di memoria) Tutti i thread genereti dallo stesso processo condividono

Dettagli

Sincronizzazione distribuita: Mutua esclusione ed elezione

Sincronizzazione distribuita: Mutua esclusione ed elezione Sistemi Distribuiti Sincronizzazione distribuita: Mutua esclusione ed elezione 1 Mutua Esclusione (algoritmo centralizzato) a) Il Processo 1 chiede al coordinatore il permesso di entrare in una regione

Dettagli

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo

Dettagli

CAPITOLO 24 I MONITOR

CAPITOLO 24 I MONITOR EFFETTO DELLE PRIMITIVE - signal E wait SUI SEMAFORI CAPITOLO 24 I MONITOR I semafori sono un mezzo efficace per la gestione della mutua esclusione in ambienti con processi concorrenti, ma spesso è difficile

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

progam ponteasensounicoalaternato ; type dir = ( nord, sud );

progam ponteasensounicoalaternato ; type dir = ( nord, sud ); Esercizio di Sincronizzazione Tra Processi: Ponte a Senso Unico Alternato Un ponte contiene una sola csia di traffico consentendo così l'accesso a macchine provenienti da una sola direzione per volta,

Dettagli

Introduzione ai Metodi Formali

Introduzione ai Metodi Formali Intruzione ai Meti Formali Sistemi software anche molto complessi regolano la vita quotidiana, anche in situazioni life-critical (e.g. avionica) e business-critical (e.g. operazioni bancarie). Esempi di

Dettagli

Il costrutto monitor [Hoare 74]

Il costrutto monitor [Hoare 74] Il monitor 1 Il costrutto monitor [Hoare 74] Definizione: Costrutto sintattico che associa un insieme di operazioni (entry o public) ad una struttura dati comune a più processi, tale che: Le operazioni

Dettagli

Monitor. Introduzione. Struttura di un TDA Monitor

Monitor. Introduzione. Struttura di un TDA Monitor Monitor Domenico Cotroneo Dipartimento di Informatica e Sistemistica Introduzione E stato introdotto per facilitare la programmazione strutturata di problemi in cui è necessario controllare l assegnazione

Dettagli

Sistemi Operativi. Lezione 7 Comunicazione tra processi

Sistemi Operativi. Lezione 7 Comunicazione tra processi Lezione 7 Comunicazione tra processi Introduzione La soluzione sw al problema della mutua esclusione è abbastanza complessa Algoritmo di Peterson La soluzione hw mediante disabilitazione degli interrupt

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Sincronizzazione nei Sistemi Distribuiti

Sincronizzazione nei Sistemi Distribuiti Sincronizzazione nei Sistemi Distribuiti Sincronizzazione dei Clock In un sistema centralizzato la misurazione del tempo non presenta ambiguità. (ogni computer ha il proprio clock) In un sistema distribuito

Dettagli

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst.

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Basi di Dati prof. A. Longheu. 5 Progettazione fisica Basi di Dati prof. A. Longheu 5 Progettazione fisica Progettazione Fisica Per effettuare la progettazione fisica, ossia l implementazione reale del modello logico creato nella fase della progettazione

Dettagli

Processi parte V. Processi parte V. Sincronizzazione dei processi mediante monitor: Sintassi Funzionamento Implementazione

Processi parte V. Processi parte V. Sincronizzazione dei processi mediante monitor: Sintassi Funzionamento Implementazione Processi parte V Processi parte V Sincronizzazione dei processi mediante monitor: Sintassi Funzionamento Implementazione Monitor Il costrutto monitor permette di definire un tipo di dato astratto e di

Dettagli

Java threads (2) Programmazione Concorrente

Java threads (2) Programmazione Concorrente Java threads (2) emanuele lattanzi isti information science and technology institute 1/28 Programmazione Concorrente Utilizzo corretto dei thread in Java emanuele lattanzi isti information science and

Dettagli

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni Capitolo 13 Gestione delle transazioni Transazioni L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché gli accessi al disco sono frequenti e relativamente

Dettagli

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere

Dettagli

Sistemi Web Tolleranti ai Guasti

Sistemi Web Tolleranti ai Guasti Sistemi Web Tolleranti ai Guasti Candidato: Paolo Romano Relatore: Prof. Salvatore Tucci Correlatore: Prof. Bruno Ciciani Sommario Il problema: garantire semantica exactly once alle transazioni Web. Sistema

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Un esercizio d esame. Flavio De Paoli

Un esercizio d esame. Flavio De Paoli Un esercizio d esame e note sulla gestione dei dati Flavio De Paoli Il testo (Appello 22 ottobre 2001) Una stazione di servizio dispone di n distributori di benzina. I clienti si presentano a uno dei distributori

Dettagli

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

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

Dettagli

Sincronizzazione dei processi

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

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

LA SINCRONIZZAZIONE TRA PROCESSI

LA SINCRONIZZAZIONE TRA PROCESSI LA SINCRONIZZAZIONE TRA PROCESSI E' più complesso scrivere programmi concorrenti rispetto a programmi sequenziali in quanto non basta essere sicuri della correttezza dei singoli moduli ma è necessario

Dettagli

Esempio - Controllo di un ascensore

Esempio - Controllo di un ascensore Costruiamo un modello ground a partire dai requisiti. Dimostriamo le proprietà di correttezza desiderate n ascensori m piani che soddisfano i seguenti requisiti: 1. Ogni ascensore ha per ogni piano un

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

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

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

Dettagli

CAPITOLO 3 : I PROCESSI

CAPITOLO 3 : I PROCESSI CAPITOLO 3 : I PROCESSI 1. CONCETTO DI PROCESSO Una questione importante che sorge nell analisi dei S.O. è la definizione delle attività. Un sistema a lotti esegue i propri job mentre un sistema a partizione

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

Livello di Rete. Prof. Filippo Lanubile. Obiettivo

Livello di Rete. Prof. Filippo Lanubile. Obiettivo Livello di Rete Circuiti virtuali e datagram La funzione di instradamento Costruzione della tabella di routing Algoritmi di routing adattivi: distance vector routing e link-state routing Routing gerarchico

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

DB - Cenni sulla gestione delle transazioni

DB - Cenni sulla gestione delle transazioni transazioni Cenni sulla gestione delle transazioni in DBMS transazioni Cenni sulla gestione delle transazioni in DBMS Basato sulle slides di transazioni Cenni sulla gestione delle transazioni in DBMS Basato

Dettagli

CAPITOLO 14 CONCORRENZA: MUTUA ESCLUSIONE E SINCRONIZZAZIONE

CAPITOLO 14 CONCORRENZA: MUTUA ESCLUSIONE E SINCRONIZZAZIONE CAPITOLO 14 CONCORRENZA: MUTUA ESCLUSIONE E SINCRONIZZAZIONE CONCORRENZA, MUTUA ESCLUSIONE, SINCRONIZZAZIONE Premesso che la trattazione e comprensione di un sistema operativo l abbiamo basata sui concetti

Dettagli

Corso di Programmazione Concorrente

Corso di Programmazione Concorrente Corso di Programmazione Concorrente Problemi Classici Valter Crescenzi crescenz@dia.uniroma3.it http://www.dia.uniroma3.it/~crescenz Sommario Introduzione ai Problemi Classici I Cinque Filosofi Mangiatori

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

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

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

PRINCIPI DI SISTEMI OPERATIVI

PRINCIPI DI SISTEMI OPERATIVI PRINCIPI DI SISTEMI OPERATIVI ESERCIZIO del 28 NOVEMBRE 2003 Un distributore di benzina ha a disposizione P pompe e una cisterna da L litri. Le automobili arrivano al distributore e richiedono un certo

Dettagli

Il software e la programmazione

Il software e la programmazione Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate

Dettagli

La programmazione con vincoli in breve. La programmazione con vincoli in breve

La programmazione con vincoli in breve. La programmazione con vincoli in breve Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Semantica Assiomatica

Semantica Assiomatica Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] Strutture dati Dinamiche: Le liste Una lista è una sequenza di elementi di un certo tipo in cui è possibile aggiungere e/o

Dettagli

Scheduling. Livelli Algoritmi

Scheduling. Livelli Algoritmi Scheduling Livelli Algoritmi Introduzione Lo scheduling Ha lo scopo di decidere quale processo eseguire in un dato istante Si realizza mediante un componente specifico del sistema operativo Lo scheduler

Dettagli

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst Impossibile visualizzare l'immagine. Scheduling della CPU Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file. ESERCIZIO 1 Si consideri un hard disk formattato la cui memoria è suddivisa in 16 blocchi (numerati da 0 a 15). Si supponga che sull hard disk sia memorizzato un unico file, contenuto, nell ordine, nei

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling

Dettagli

Esecuzione concorrente di transazioni

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

Dettagli

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validità

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

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

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

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli