Transazioni e controllo della concorrenza

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Transazioni e controllo della concorrenza"

Transcript

1 Transazioni e controllo della concorrenza Tecniche di programmazione distribuita - responsabilità del programmatore, basso livello Alto livello - transazione sequenza di operazioni sul server, che coinvolgono un insieme di processi e/o risorse condivise, che è garantita essere atomica (dal server) in presenza di concorrenza e di guasti Metodi di controllo della concorrenza Lock Ottimistico Timestamp - ordinamento Proprietà delle transazioni tutto o niente lo operazioni sono compiute tutte con successo o se anche una sola fallisce, va ripristinato lo stato iniziale isolamento non c è interferenza con altre transazioni, non devono essere visibili effetti intermedi Transazioni Deve esistere una memoria stabile: memorizzazione permanente e ridondante Devono esistere algoritmi per gestire la ridondanza A atomicità sequenza indivisibile dall esterno C consistenza I isolamento D durata permanenza se la transizione termina con successo il cambiamento è permanente seriazzabilità non interferenza fra transazioni concorrenti commit abort annidamento se e transazioni sono annidate solo la più esterna può avere permanenza -> maggior concorrenza nello stesso livello maggiori prestazioni tolleranza ai guasti eseguire una transazione con successo eseguire una transazione con insuccesso C12.2 1

2 Esempio: transazioni bancarie - operazioni sulle interfacce Oggetto conto Oggetto filiale Operazioni sull interfaccia Account deposit(amount) deposita amount sul conto withdraw(amount) preleva amount dal conto getbalance() -> amount restituisce il saldo del conto setbalance(amount) pone il saldo del conto ad amount Operazioni sull interfaccia Branch create(name) -> account crea un nuovo account con il nome specificato lookup(name) -> account restituisce un puntatore al conto con il nome dato branchtotal() -> amount restituisce il totale di tutti i conti nel branch C12.3 Esempio: transazione bancaria di un cliente Transaction T: a.withdraw(100); b.deposit(100); c.withdraw(200); b.deposit(200); a, b, c variabili di tipo Account Atomicità delle transazioni - assenza di interferenza Consistenza - concorrenza multi-thread e possibile interleaving dei metodi withdraw e deposit Isolamento - effetti intermedi invisibili Durata - effetto permanente Es. Java: uso di metodi synchronized per la mutua esclusione dell accesso uno dei modi possibili per garantire l atomicità Transazioni: possono essere parte del middleware C12.4 2

3 Operazioni nell interfaccia Coordinator Necessità di massimizzare la concorrenza Transazioni serializzabili (serialmente equivalenti) se l esecuzione seriale e concorrente sono equivalenti Coordinatore: crea e gestisce le transazioni Interfaccia Coordinator opentransaction() -> trans; inizia una nuova transazione e restituisce un unico TID trans. L identificatore viene poi usato per le altre operazioni nella transazione closetransaction(trans) -> (commit, abort); termina la transazione: restituisce un valore commit (la transazione è completata con successo) o abort ( terminata con insuccesso) aborttransaction(trans); termina la transazione con insuccesso C12.5 Storie di vita di transazione Con successo Terminata dal cliente Terminata dal server opentransaction opentransaction opentransaction operation operation operation operation operation operation server aborts transaction operation operation operation ERROR closetransaction aborttransaction reported to client C12.6 3

4 Transazioni e controllo della concorrenza Gestione delle transazioni Concorrenza - Interferenza Il risultato può dipendere dai tempi di esecuzione e dalla sequenza delle operazioni - problema della perdita di aggiornamento (lost update) manipolazione dei dati non gestita correttamente e che determina la perdita di un risultato di aggiornamento - problema dell inconsistenza (retrieval disparity o inconsistent retrieval) valori dei dati non consistenti per tutte le copie se la modifica di dati condivisi non è atomica esistono copie multiple di dati il recupero di informazione può portare valori inconsistenti C12.7 Problema della perdita di aggiornamento Transazione T : balance = b.getbalance(); b.setbalance(balance*1.1); a.withdraw(balance/10) balance = b.getbalance(); $200 b.setbalance(balance*1.1); $220 a.withdraw(balance/10) $80 Transazione U : balance = b.getbalance(); b.setbalance(balance*1.1); c.withdraw(balance/10) balance = b.getbalance(); $200 b.setbalance(balance*1.1); $220 c.withdraw(balance/10) $280 C12.8 4

5 Problema dell inconsistenza Transazione V : a.withdraw(100) b.deposit(100) a.withdraw(100); $100 b.deposit(100) $300 Transazione W : abranch.branchtotal() total = a.getbalance() $100 total = total+b.getbalance() $300 total = total+c.getbalance() C12.9 Transazioni ed equivalenza seriale Transazioni equivalenti serialmente se l esecuzione concorrente e seriale danno lo stesso risultati Se le transazioni interferiscono si può individuare una combinazione di operazioni delle sequenze (interleaving) che sia equivalente serialmente - stesso valore delle variabili in lettura - le variabili (attributi) degli oggetti hanno lo steso valore, al termine della esecuzione perdita di aggiornamento inconsistenza uso dell equivalenza seriale lettura di valori vecchi ed uso per elaborazione esecuzione concorrente (non seriale) di lettura e aggiornamento C

6 Interleaving di T ed U equivalenti serialmente Transazione T : balance = b.getbalance() b.setbalance(balance*1.1) a.withdraw(balance/10) balance = b.getbalance() $200 b.setbalance(balance*1.1) $220 a.withdraw(balance/10) $80 Transazione U : balance = b.getbalance() b.setbalance(balance*1.1) c.withdraw(balance/10) balance = b.getbalance() $220 b.setbalance(balance*1.1) $242 c.withdraw(balance/10) $278 C12.11 Interleaving di V e W serialmente equivalenti Transazione V: a.withdraw(100); b.deposit(100) a.withdraw(100); $100 b.deposit(100) $300 Transazione W: abranch.branchtotal() total = a.getbalance() $100 total = total+b.getbalance() $400 total = total+c.getbalance()... C

7 Conflitto di operazioni Due operazioni sono in conflitto se il risultato (effetto) della esecuzione combinata dipende dall ordine di esecuzione read accesso oggetto write modifica Effetto: valore dell oggetto dopo l esecuzione C12.13 Regole di conflitto di operazioni read e write Operazioni di diverse transazioni Conflitto Motivo read read No Perché l effetto di due operazioni read non dipende dall ordine di esecuzione read write Sì Perché l effetto di una read e una write dipende dall ordine di esecuzione write write Sì Perché l effetto di due operazioni write dipende dall ordine di esecuzione C

8 Equivalenza seriale e conflitti Due transazioni sono equivalenti serialmente tutte le coppie di operazioni in conflitto sono eseguite nello stesso ordine su tutti gli oggetti che riferiscono Equivalenza seriale: regola per definire protocolli di controllo della concorrenza fra transazioni. Tali meccanismi gestiscono l interazione e i conflitti fra transazioni sullo stesso insieme di dati. Lock (m.e.) più usato metodi Ottimistico (assenza di conflitti) Timestamp - ordinamento - scarta (abort) transazioni non ordinate C12.15 Interleaving di operazioni di transazioni T e U non equivalenti serialmente Transazione T: Transazione U : x = read(i) write(i, 10) y = read(j) write(j, 30) write(j, 20) z = read (i) Le coppie di operazioni in conflitto non accedono nello stesso ordine ai due oggetti i e j C

9 Problemi dovuti ad esecuzioni senza successo (abort) L esecuzione di un insieme di transazioni anche serialmente equivalenti non è esente dal problema delle dirty reads (letture non corrette) causate da esecuzioni senza successo di transazioni (abort) T modifica oggetto legge commit U abort Soluzione: ritardare il commit di U C12.17 Esempio: lettura errata quando la transazione T termina senza successo Transazione T: a.getbalance() a.setbalance(balance + 10) balance = a.getbalance() $100 a.setbalance(balance + 10) $110 abort transaction Transazione U: a.getbalance() a.setbalance(balance + 20) balance = a.getbalance() $110 a.setbalance(balance + 20) $130 commit transaction U ha letto un valore che è stato poi annullato da abort di T C

10 Problemi dovuti a ripetizione L esecuzione senza successo di una transazione (abort) ne può causare altre (effetto cascata) Si evita imponendo che la read di oggetti avvenga solo se le precedenti write su quell oggetto sono state eseguite da transazioni completate (commit) Si ritarda l esecuzione della read Condizione necessaria per la possibilità di recuperare lo stato precedente (annullabilità di operazioni) premature writes interazione fra operazioni write sullo stesso oggetto eseguite da diverse transazioni (soggette ad abort) -> ripristinare lo stato precedente (storia delle modifiche) uso di before images per tutte le write di ogni transazione per garantire correttezza: si ritarda l esecuzione della write finchè non ha completato (commit o abort) la transazione che ha aggiornato l oggetto subito prima C12.19 Riscrittura su valori non definitivi Transazione T: a.setbalance(105) $100 a.setbalance(105) $105 Transazione U: a.setbalance(110) a.setbalance(110) $110 Se U abort e T commit il valore deve essere... C

11 Realizzazione Esecuzione stretta di transazioni: Si ritarda l esecuzione della read e della write per risolvere entrambi i problemi delle dirty reads e delle premature writes -> garantisce la proprietà di isolamento Per gestire il problema del recupero dello stato a seguito di abort si mantengono versioni intermedie e parziali e si memorizza la versione definitiva in modo permanente solo al tempo della commit C12.21 Transazioni annidate T : transazione top-level T 1 = opensubtransaction T 2 = opensubtransaction T 1 : T 2 : opensubtransaction opensubtransaction prov. commit T 11 : T 12 : T 21: prov. commit prov. commit commit opensubtransaction abort opensubtransaction prov. commit T 211 : Esecuzione concorrente per T allo stesso livello Controllo dell accesso a risorse condivise (serializzazione) commit temporanei delle sottotransazioni prov.commit Vantaggi: prestazioni, tolleranza ai guasti (abort) di sottotransazioni distribuzione e scalabilità C

12 Controllo della concorrenza: lock Accesso in mutua esclusione agli oggetti che vengono modificati Possibile stallo Granularità: minima informazione da serializzare Molto applicato Algoritmo two-phase locking I fase II fase crescita aggiornamento acquisizione lock rilascio lock t C12.23 Transazioni T e U con locks esclusivi Transazione T: balance = b.getbalance() b.setbalance(bal*1.1) a.withdraw(bal/10) Transazione U: balance = b.getbalance() b.setbalance(bal*1.1) c.withdraw(bal/10) Operazioni Locks Operazioni Locks opentransaction bal = b.getbalance() lock B b.setbalance(bal*1.1) opentransaction a.withdraw(bal/10) lock A bal = b.getbalance() waits for T s lock on B closetransaction unlock A, B lock B b.setbalance(bal*1.1) c.withdraw(bal/10) lock C closetransaction unlock B, C C

13 Compatibilità di Lock Schema molti lettori-uno scrittore read e write lock Per un oggetto Lock richiesto read write Lock già assegnato nessuno OK OK read OK wait write wait wait C12.25 Uso di locks nel two-phase locking stretto 1. Quando una operazione accede ad un oggetto in una transazione: (a) Se l oggetto non è già locked, si esegue il lock e l operazione continua (b) Se l oggetto ha un lock in conflitto con un altra transazione, la transazione deve aspettare fino alla unlock. (c) Se l oggetto ha un lock senza conflitto con un altra transazione, il lock è condiviso e l operazione continua (d) Se l oggetto ha già un lock nella stessa transazione, il lock è promosso se necessario e l operazione continua (per lock in conflitto si applica la regola (b)) 2. Quando una transazione è completata (commit o abort), il servente blocca (unlocks) tutti gli oggetti bloccati per la transazione C

14 classe Lock public class Lock { private Object object; // l oggetto protetto dal lock private Vector holders; // identificatore TIDs della transazione corrente che ha il lock private LockType locktype; // tipo corrente public synchronized void acquire(transid trans, LockType alocktype ){ while(/*un altra transazione ha il lock nel modo di conflitto*/) { try { wait(); }catch ( InterruptedException e) } if(holders.isempty()) { // nessun TIDs ha il lock holders.addelement(trans); locktype = alocktype; } else if(/*un altra transazione ha il lock, va condiviso*/ ) ){ if(/* questa transazione non è un holder*/) holders.addelement(trans); } else if (/* questa transazione è un holder ma vuole lock esclusivo */) locktype.promote(); } C12.27 } Continua continua public synchronized void release(transid trans ){ holders.removeelement(trans); // pone locktype a nessuno notifyall(); } } // rimuove questo holder C

15 Classe LockManager public class LockManager { private Hashtable thelocks; } public void setlock(object object, TransID trans, LockType locktype){ Lock foundlock; synchronized(this){ // trova il lock associato all oggetto // se non c è lo crea e lo aggiunge alla hashtable } foundlock.acquire(trans, locktype); } // sincronizza questo perché si vogliono eliminare tutte le entries public synchronized void unlock(transid trans) { Enumeration e = thelocks.elements(); while(e.hasmoreelements()){ Lock alock = (Lock)(e.nextElement()); if(/* trans è un holder di questo lock*/ ) alock.release(trans); } } C12.29 Locking e annidamento Per le transazioni annidate occorre che - ogni insieme di T annidate non deve vedere risultati intermedi di altri insiemi di T annidate - ogni T nell insieme delle annidate non deve vedere risultati intermedi delle altre T nell insieme stesso ereditarietà del padre del lock acquisito da una sottot al completamento al livello più alto si ereditano tutti i lock acquisiti nel sottoalbero di annidamento si evitano in tal modo le visioni parziali non completate Il figlio non viene eseguito concorrentemente al padre, ma eredita il lock necessario temporaneamente Figli allo stesso livello sono concorrenti e competono serializzando il lock 1. una sottot acquisisce un read lock se nessuna T attiva ha write lock e chi ha wl è un suo antenato 2. una sottot acquisisce un write lock se nessuna T attiva ha read o write lock e chi ha rl o wl è un suo antenato 3. quando la sottot commit i lock sono ereditati dal padre nello stesso tipo 4. quando la sottot abort i lock sono persi, se il padre ne ha, li tiene C

16 Stallo con write locks Transazione T Transazione U Operazione Locks Operazione Locks a.deposit(100); write lock A b.deposit(200) write lock B b.withdraw(100) waits for U s a.withdraw(200); waits for T s lock on B lock on A Stallo: quando i membri di un insieme di transazioni aspetta il rilascio di lock da parte di altri membri Dipendenza indiretta sugli oggetti C12.31 Grafo di attesa circolare assegnato a attesa A T U T U attesa B assegnato a C

17 Ciclo in un grafo di wait-for U T V Abort -> C12.33 Esempio di grafo con wait-for V Assegnato a T W T U W Assegnato a C Assegnato a V U Assegnato a B attesa rl wl più cicli C

18 Risoluzione dello stallo nell esempio:uso di timeout Transazione T Transazione U Operazioni Locks Operazioni Locks a.deposit(100); b.withdraw(100) write lock A lock su B (timeout elapses) T s lock su A diventa vulnerabile unlock A, abort T b.deposit(200) write lock B waits for U s a.withdraw(200); waits for T s a.withdraw(200); lock su A write locks A unlock A, B C12.35 Compatibilità di Lock (locks read, write e commit) Locking basato su due versioni: variante del two-phase locking per aumentare la concorrenza Ritarda il lock esclusivo finché la transazione non completa con commit Metodo ottimistico - tre tipi di lock: read, write, commit Per un oggetto Lock da imporre read write commit Lock già imposti nessuno OK OK OK read OK OK wait write OK wait commit wait wait C

19 Gerarchia di lock: esempio Lock gerarchico: variante del two-phase locking per aumentare la concorrenza Lock di diversa granularità per ridurre l overhaed di esecuzione delle transazioni e ridurre il numero di lock Branch A B C Account I lock del padre hanno lo stesso effetto di quello dei figli Si riducono i lock C12.37 Gerarchia di lock per una agenda Settimana Lunedì Martedì Mercoledì Giovedì Venerdì ore 9:00 10:00 10:00 11:0011:00 12:0012:00 13:0013:00 14:0014:00 15:0015:00 16:00 C

20 Tabella di compatibilità di lock per lock gerarchici Ogni nodo della gerarchia può essere soggetto a lock Il lock sul padre Per un oggetto Lock da imporre read write I-read I-write Lock già imposti nessuno OK OK OK OK Intention-lock -> implicito lock sui figli read OK wait OK wait write wait wait wait wait I-read OK wait OK OK I-write wait wait OK OK Prima di ottenere un lock sul figli si deve ottenere un intention lock sugli antenati (padre) C12.39 Controllo della concorrenza: ottimistico Assume - ottimisticamente - che non esistano conflitti fra le operazioni Controlla a tempo di commit se vi sono state interferenze e in tal caso annulla le transazioni Senza stallo Massimo livello di concorrenza Svantaggio: sotto ipotesi di carico pesante la probabilità di interferenza e conflitto è molto elevata - possibile starvation Fase di lavoro Fase di convalida Fase di aggiornamento - versioni parziali (tentativo) - controllo alla chiusura - versioni da temporanee a permanenti C

21 Serializzabilità della transazione T 1 rispetto alla transazione T 2 Transazioni numerate in ordine crescente nella fase di convalida Regole da verificare nella fase di convalida Le transazioni sovrapposte nel tempo sono serializzabili? T 1 T 2 Regola write read 1. T 2 non deve leggere oggetti scritti da T 1 read write 2. T 1 non deve leggere oggetti scritti da T 2 write write 3. T 2 non deve scrivere oggetti scritti da T 1 e T 1 non deve scrivere oggetti scritti da T 2 Le convalida viene eseguita come sezione critica Se la fase di aggiornamento è esclusiva, la regola 3 è sempre verificata Non si possono avere dirty read C12.41 Convalida della transazione T 1 Lavoro T 2 Convalida Aggiornamento Transazioni completate prima Transazione da validare T 3 T v Transazioni attive dopo attiva 1 attiva 2 Convalida backward forward C

22 Convalida di transazioni Convalida backward della transazione T v boolean valid = true; for (int T i = starttn+1; T i <= finishtn; T i ++){ if (read set di T v interseca write set di T i ) valid = false; } Convalida forward della transazione T v boolean valid = true; for (int T id = active1; T id <= activen; T id ++){ if (write set di T v interseca read set of T id ) valid = false; } Ritarda Abort T v Abort T v Abort active I starttn max # di transazione assegnato quando T v inizia la fase lavoro finishtn max # di transazione assegnato quando T v inizia la fase convalida C12.43 Controllo della concorrenza: timestamp e ordinamento Ad ogni transazione è associato un timestamp (etichetta unica) Ogni file (oggetto) ha un timestamp read e timestamp write che registra il tempo dell ultima transazione che ha avuto accesso (unica copia) Il file (oggetto) autorizza l operazione (read o write) solo a transazioni con timestamp maggiore (più recente) del timestamp del file (accesso di una transazione per volta) Le transazioni che arrivano in ritardo -> abort Verifica immediata della validità Senza stallo C

23 Conflitti di operazione per ordine dei timestamp Regola T c T i 1. write read T c non deve eseguire una write su un oggetto su cui un T i >T c ha eseguito una read ciò richiede T c max read timestamp dell oggetto 2. write write T c non deve eseguire una write su un oggetto su cui un T i >T c ha eseguito una write ciò richiede T c > write timestamp dell oggetto committed 3. read write T c non deve eseguire una read su un oggetto su cui un T i >T c ha eseguito una write ciò richede T c > write timestamp dell oggetto committed C12.45 Operazioni write e timestamps (a) T 3 write (b) T 3 write Prima T 2 Prima T 1 T 2 Key: T i Dopo T 2 T 3 Dopo T 1 T 2 T 3 Committed Tempo Tempo T i Tentative (c) T 3 write Prima T 1 T 4 (d) T 3 Prima write T 4 Transaction aborts Oggetto prodotto dalla transazione T i (con write timestamp T i ) T 1 <T 2 <T 3 <T 4 Dopo T 1 T 3 T 4 Dopo T 4 Tempo Tempo (a), (b), (c) T 3 read timestamp T 3 < write timestamp (committed obj) C

24 Regola di ordinamento di write con timestamp if (T c max read timestamp su D && T c > write timestamp sulla versione completata di D) esegue la write sulla versione tentativo di D con write timestamp T c else /* write è troppo in ritardo */ Abort transazione T c Per decidere se accettare una write di T c sull oggetto D C12.47 Regola di ordinamento di read con timestamp if ( T c > write timestamp sulla versione committed di D) { sia D selected la versione di D con il max write timestamp T c if (D selected è committed) esegui read sulla versione D selected else Wait until la transazione che ha creato la versione D selected commits o aborts then riapplica la regola read } else Abort transazione T c Per decidere se accettare una read di T c sull oggetto D C

25 Esempio (a) T 3 read (a) T 3 read Key: T 2 read continua T 2 T 4 read continua T i Selected Time Selected Time Committed (a) T 3 read T 1 T 2 read aspetta Selected Time (a) T 3 read T 4 Transaction aborts Time T i Tentative Oggetto prodotto dalla transazione T i (con write timestamp T i ) T 1 < T 2 < T 3 < T 4 versione selezionata con write timestamp T 3 C12.49 Timestamps nelle transazioni T e U Timestamps e versioni di oggetti T U A B C RTS WTS RTS WTS RTS WTS {} S {} S {} S opentransaction bal = b.getbalance() {T} b.setbalance(bal*1.1) opentransaction bal = b.getbalance() wait for T a.withdraw(bal/10) commit S, T T T bal = b.getbalance() {U} b.setbalance(bal*1.1) T, U c.withdraw(bal/10) S, T S, U C

26 Operazione write in ritardo che rende la read non valida T 3 read; T 3 write; T 5 read; T 4 write; T 2 T T 3 1 T 3 T 5 Time T 1 < T 2 < T 3 < T 4 < T 5 Key: T i Ti Oggetto prodotto dalla transazione T i T k T k (con write timestamp T i e read timestamp T k ) Committed Tentative C

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

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

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

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso. Nel caso di successo, i risultati delle operazioni effettuate devono essere resi definitivi; invece,

Dettagli

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione

Dettagli

Linguaggio SQL: costrutti avanzati

Linguaggio SQL: costrutti avanzati Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione

Dettagli

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill /XFLGLVXOFRQWUROORGHOODFRQFRUUHQ]D Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill $QRPDOLD /RVW8SGDWH Si considerino le due transazioni identiche: W1

Dettagli

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni Replicazione Replicazione dei dati: gestione e manutenzione di un insieme di copie dei dati Motivazioni: - disponibilità - tolleranza ai guasti - prestazioni aching diverso da replicazione aching non aumenta

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

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

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario Data Base Management System Strumenti: Software specifico Formato: Pro: Proprietario Massima semplicità di inserimento e gestione Tipizzazione Validazione dei dati Contro: Creazione del database Programmazione

Dettagli

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Gestione delle transazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché

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

Tecnologia di un Database Server (centralizzato) Introduzione generale

Tecnologia di un Database Server (centralizzato) Introduzione generale Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

8 Tecniche di recovery

8 Tecniche di recovery 8 Tecniche di recovery Se viene sottomessa una transazione T, o tutte le operazioni di T sono completate ed il loro effetto è registrato permanentemente nel DB, o T non ha nessun effetto né sul DB né su

Dettagli

Terza Esercitazione. Unix - Esercizio 1. Unix System Call Exec Java Introduzione Thread

Terza Esercitazione. Unix - Esercizio 1. Unix System Call Exec Java Introduzione Thread Terza Esercitazione Unix System Call Exec Java Introduzione Thread Stefano Monti smonti@deis.unibo.it Unix - Esercizio 1 Scrivere un programma C con la seguente interfaccia:./compilaedesegui

Dettagli

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

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

Dettagli

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

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Controllo concorrenza

Controllo concorrenza Controllo concorrenza Esercitazioni - Basi di dati (complementi) Autore: Dr. Simone Grega Esercizio. Dati gli schedule: s r w r w r w s r w r w r3 w r r3 s3 r r3 rz w w3 Specificare, con una breve giustificazione,

Dettagli

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I

Dettagli

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

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

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione della concorrenza

Tecnologia di un Database Server (centralizzato) Gestione della concorrenza Concorrenza Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione della concorrenza Angelo Montanari Dipartimento di Matematica e Informatica Università

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

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

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

Base di dati e sistemi informativi

Base di dati e sistemi informativi Base di dati e sistemi informativi Una base di dati è un insieme organizzato di dati opportunamente strutturato per lo svolgimento di determinate attività La base di dati è un elemento fondamentale per

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

Dettagli

L architettura di un DBMS

L architettura di un DBMS L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze

Dettagli

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Dettagli

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Laboratorio di Sistemi Distribuiti Leonardo Mariani Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche. Query/update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura pagine Architettura di un DBMS Utente/Applicazione

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

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

Deadlock (stallo) Parte III. Deadlock

Deadlock (stallo) Parte III. Deadlock Parte III Deadlock Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 III - 1 Deadlock (stallo) Su di un tavolo ci sono un piatto ed una forchetta A e B sono seduti al tavolo, per mangiare ciascuno

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

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

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

Transazioni - Parte 1

Transazioni - Parte 1 Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria

Dettagli

Corso di Programmazione Concorrente

Corso di Programmazione Concorrente Corso di Programmazione Concorrente Stallo Valter Crescenzi crescenz@dia.uniroma3.it http://www.dia.uniroma3.it/~crescenz Assunzione di Progresso Finito Tutti i processori virtuali hanno una velocità finita

Dettagli

Corso di Sistemi di Gestione di Basi di Dati. Esercitazione sul controllo di concorrenza 12/02/2004

Corso di Sistemi di Gestione di Basi di Dati. Esercitazione sul controllo di concorrenza 12/02/2004 Corso di Sistemi di Gestione di Basi di Dati Esercitazione sul controllo di concorrenza 12/02/2004 Dott.ssa Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

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

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724)

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Procedo con un esempio: voglio proteggere una applicazione (nell esempio Blocco Note di Windows: notepad.exe) per distribuirla con

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Il problema del produttore e del consumatore. Cooperazione tra processi

Il problema del produttore e del consumatore. Cooperazione tra processi Il problema del produttore e del consumatore Cooperazione tra processi Risorsa consumabile I processi disgiunti possono interferire tra loro a causa dell'uso di risorse permanenti, ma ognuno di essi ignora

Dettagli

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

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

Java Virtual Machine

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

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Guida dell utente. Centro di fatturazione UPS

Guida dell utente. Centro di fatturazione UPS Guida dell utente Centro di fatturazione UPS 2015 United Parcel Service of America, Inc. UPS, il marchio UPS e il colore marrone sono marchi commerciali di United Parcel Service of America, Inc. Tutti

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

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

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

Dettagli

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Sistemi di gestione delle basi di dati 1 Cos è un DBMS? Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni (ad esempio, Madonna

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Modello di Controllo dell Accesso basato sui ruoli (RBAC) Modello di Controllo dell Accesso basato sui ruoli (RBAC) POLITICHE RBAC Sistemi di tipo Role Based Access Control (RBAC) assegnano i privilegi non agli utenti, ma alla funzione che questi possono svolgere

Dettagli

Esempio ordini 08UMLEX1.1

Esempio ordini 08UMLEX1.1 Esempio ordini 08UMLEX1.1 Sommario Specifiche del sistema di gestione ordini Specifiche Use Case Use Case Specifiche del diagramma delle classi Diagramma delle classi Specifiche per lo scenario della richiesta

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

L API socket ed i daemon

L API socket ed i daemon L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque? NOSQL Data Model HBase si ispira a BigTable di Google e perciò rientra nella categoria dei column store; tuttavia da un punto di vista logico i dati sono ancora organizzati in forma di tabelle, in cui

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

B+Trees. Introduzione

B+Trees. Introduzione B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Tecnologia di un Database Server (centralizzato) Gestione del buffer Buffer Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione del buffer Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Buffer

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

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

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

Server Galileo. http://galileo.dmi.unict.it/

Server Galileo. http://galileo.dmi.unict.it/ Server Galileo http://galileo.dmi.unict.it/ Gestione progetti Wiki Subversion Iscrizione a Galileo Per registrarsi è sufficiente iscriversi da questa pagina: https://galileo.dmi.unict.it/iscrizioni/ L'account

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Deadlock e Starvation

Deadlock e Starvation DTI / ISIN / Titolo principale della presentazione 1 Deadlock e Starvation Amos Brocco, Ricercatore, DTI / ISIN 3 aprile 2012 Condivisione di risorse In un sistema si trovano delle risorse che possono

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Threading T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Caratteristiche principali dei thread Consentono di eseguire elaborazioni simultanee in un programma scritto in C#. Possono essere

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria

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

Procedura SMS. Manuale Utente

Procedura SMS. Manuale Utente Procedura SMS Manuale Utente INDICE: 1 ACCESSO... 4 1.1 Messaggio di benvenuto... 4 2 UTENTI...4 2.1 Gestione utenti (utente di Livello 2)... 4 2.1.1 Creazione nuovo utente... 4 2.1.2 Modifica dati utente...

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Dettagli