Controllo concorrenza



Documenti analoghi
Basi di Dati Complementi Esercizi Esercizi su concurrency control

Esecuzione concorrente di transazioni

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

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

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione.

Parte 1 Gestione della concorrenza

Parte 2 Esercitazione sulla gestione della concorrenza

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

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Sistema di gestione Certificato MANUALE PER L'UTENTE

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

Tecnologia di un Database Server (centralizzato) Gestione della concorrenza

Algoritmi e diagrammi di flusso

ESEMPIO 1: eseguire il complemento a 10 di 765

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

MANUALE UTENTE Fiscali Free

Esercizio 2. Client e server comunicano attraverso socket TCP

Gestione Turni. Introduzione

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

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Soluzione dell esercizio del 2 Febbraio 2004

execute reject delay

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Gestione Risorse Umane Web

Deadlock (stallo) Parte III. Deadlock

Il problema del produttore e del consumatore. Cooperazione tra processi

SISTEMI DI NUMERAZIONE E CODICI

Corso di Programmazione Concorrente

Dimensione di uno Spazio vettoriale

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

Rappresentazione delle informazioni

DB - Cenni sulla gestione delle transazioni

SendMedMalattia v Manuale d uso

SITO DI PUBBLICAZIONE ANNUNCI

Esempi di algoritmi. Lezione III

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Guida Operativa per Singolo Atleta Si raccomanda di utilizzare Explorer versione 9 o superiore, Firefox o Chrome aggiornati alle ultime versioni.

Assicurazione NON Soci in Attività Sezionale

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Manuale Terminal Manager 2.0

Il calcolo delle provvigioni con Excel

Appunti di Sistemi Elettronici

Guida per l aggiornamento del software del Browser SISTRI

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

2.7 La cartella Preparazioni e CD Quiz Casa

LABORATORIO DI SISTEMI

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

Funzioni in C. Violetta Lonati

CREAZIONE DI UN AZIENDA

QUICK GUIDE ESAMI DI STATO

Sistema per il monitoraggio della Spesa Sanitaria

Sistema per il monitoraggio della Spesa Sanitaria

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Sistema per il monitoraggio della Spesa Sanitaria

Esercizi su. Funzioni

GESTIONE DEI BENI USATI

ISTRUZIONI PER LA GESTIONE BUDGET

Manuale del Software per la richiesta, il rilascio e l utilizzo dei Patentini

Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili

Modulo plug&play MKMB-3-e-3. Interfaccia Modbus/RTU per contatori Iskraemeco MT831 / MT860

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Database 1 biblioteca universitaria. Testo del quesito

Manuale Utente. Gestione Richieste supporto Data Warehouse. Della Ragioneria Generale dello Stato. Versione 1.0. Roma, Ottobre 2015

Sistema per il monitoraggio della Spesa Sanitaria

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

4. Operazioni aritmetiche con i numeri binari

Nuova procedura on-line di autocertificazione

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

COSTER. Import/Export su SWC701. SwcImportExport

PROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

FASI DA ESEGUIRE ON-LINE

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

MANUALE UTENTE INFOCAR REPAIR ACCESSO SMARTPHONE/TABLET

Guida per la creazione e la gestione di un profilo Google Scholar Citations

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

Comunicazione Dichiarazione Intento

UNIEMENS Manuale consultazione DM10 Virtuale e DM10VIG nel sito

Verbalizzazione e Firma Digitale

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

CAPITOLO 7 - SCAMBIO DI MESSAGGI

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

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

ARCHITETTURA DI UN B.D.M.S. Parte I Il controllo di concorrenza

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

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

Quando si manifesta la necessita di operare sul nuovo anno e indispensabile lanciare questo programma.

Manuale Fornitore E-Vendor

Transcript:

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, a quali delle seguenti classi ciascuno di essi appartiene: S (seriale), CSR (conflict serializzabile), PL (generabile da uno scheduler basato sul lock a due fasi), e TS (generabile da uno scheduler che utilizzi il metodo dei time stamp; si assuma che l ordinamento degli identificatori delle transazioni corrisponda quello dei timestamp).

Schedule s r w r w r w Caso seriale Lo schedule non e seriale perche le transazioni e effettuano letture e scritture inserite all interno della transazione. 3 Schedule s r w r w r w Caso conflict serializable - Costruiamo il grafo dei conflitti: r w r w r w t t t - Lo schedule appartiene alla classe CSR in quanto il grafo dei conflitti e aciclico 4

Schedule s r w r w r w Caso PL Simuliamo il funzionamento dello scheduler: Per ogni operazione, inseriamo il lock corrispondente, se necessario Costruiamo uno schedule con i lock esclusivi a partire da s, rispettando le regole: lock ben formato, lock legale, PL Lock acquisiti subito prima di effettuare l operazione Verifichiamo che lo schedule sia eseguibile e che non dia luogo ad attese su singoli comandi che alterano l ordine dei comandi e quindi rendono lo schedule non Pl NB se nel corso della assegnazione dei lock verifichiamo che qualche regola e violata, possiamo sospendere la analisi. 5 Eseguiamo i due passi r w r w r w A. costruiamo uno schedule con i lock esclusivi a partire da s. Risultato: T T T l r w (qui non possiamo inserire u per non violare PL) l r w (non e rispettata la legalita ) Per rispettare la proprieta di legalita, avremmo dovuto prima fare unlock su, ma allora non possiamo rispettare la proprieta di PL perche la transazione deve ancora effettuare lock su. Lo schedule non e PL 6 3

Tuttavia, non si creano deadlock Qui chiede il lock prima che To lo rilasci e una delle possibili combinazioni di eventi, dipende dalla velocita relativa dei processi Schedule con richieste di lock Schedule originale: r w r w r w Schedule eseguito : r w r w r w lx rx wx lx ly ry ly uy wy uy ux rx wx ux Locks X: X: ( attende ) Y: Y: ( attende ) Y: ( puo procedere) Y: X: ( puo procedere) 7 Schedule s r w r w r w 8 4

Schedule s r r 9 Schedule s r w r w 5

Schedule s r w r r w r Schedule s r w r w r w r w 6

Schedule s r w r w r r w r w r 3 Schedule s r w r w r w r w r w r w Le assegnazioni non generano conflitti quindi s e della classe TS 4 7

Schedule s3 r r3 rz w w3 Caso seriale Lo schedule non e seriale perche le transazioni 3 e effettuano letture e scritture inserite all interno della transazione 5 Schedule s3 r r3 rz w w3 Caso conflict serializable - Costruiamo il grafo dei conflitti: r r3 rz w w3 t t3 Grafo dei conflitti - Lo schedule non appartiene alla classe CSR in quanto il grafo dei conflitti e ciclico 6 8

Schedule s3 r r3 rz w w3 Caso PL Costruiamo uno schedule con i lock esclusivi a partire da s, rispettando le regole: lock ben formato, lock legale, PL Se ci riusciamo, lo schedule e PL. 7 Eseguiamo le assegnazioni del lock e unlock r r3 rz w w3 l r l3 r3 lz rz uz l (negato, in coda) l3 (negato, 3 in coda) La richiesta di lock su e negata, altrimenti non verrebbe rispettata la proprieta ldi legalita. Lo schedule non e PL. Nel nuovo schedule che viene eseguito viene negato il lock anche a l3, per cui lo schedule va in 8 deadlock. 9

In questo caso, si crea un deadlock Schedule con richieste di lock lx l3y lz ly l3x Locks X: Y: 3 Z: Y: 3 ( attende 3) X: 3 (3 attende deadlock) T T3 9 Schedule s3 r r3 rz w w3 r w rz 3 r3 w3 3 z Il comando w della transazione tenta di scrivere in dopo che il comando r3 ha letto in, questo crea conflitto. Lo schedule non appartiene alla classe TS

Esercizio. Si consideri uno scheduler basato su timestamps. Sono date tre transazioni T, T, T3 con i rispettivi timestamps, ottenuti dallo scheduler: ts(t) =, ts(t) = 5, ts(t3) = 75. Descrivere il comportamento dello scheduler rispetto alla seguente sequenza di operazioni: R(B) R(A) R3(C) W(B) W(A) W(C) W3(A) operazioni Risultato timestamps dati commento T T T3 A B C RT WT RT WT RT WT R(B) R(A) 5 R(C) 75 W(B) W(A) W(C) 5 T scrive un valore gia' letto da T3 che e' piu' recente => viene terminata W(A) 75 T3 sovrascrive un valore gia' scritto da T che e' piu' recente => l'operazione viene ignorata e T3 puo' proseguire

Esercizio.3 E' dato il seguente schedule S, costituito dalle transazioni T, T, T3: S = rz r w r3 r3z r w w3 w3z r r w w a) Dire se S e' serializzabile ai conflitti, indicando il suo grafo di precedenza; b) Modificare le transazioni T, T, T3, inserendo primitive di lock/unlock binario in modo che ciascuna segua il protocollo PL, e in modo che per ciascun item venga acquisito il lock il piu' tardi possibile e rilasciato prima possibile (compatibilmente con le regole PL). Scrivere le tre transazioni cosi' modificate; c) Riscrivere S utilizzando le nuove transazioni con i lock, cercando cioe' di eseguire le operazioni nello stesso ordine indicato da S. Ogni volta che una operazione pone una transazione in attesa su un lock, si passi alle operazioni successive, nell'ordine, delle transazioni che possono proseguire. Indicare la sequenza ottenuta. Che fenomeno si verifica? In che modo lo scheduler potrebbe prevenire tale fenomeno? 3 Domanda a Schedule s rz r w r3 r3z r w w3 w3z r r w w - Costruiamo il grafo dei conflitti: rz r w r3 r3z r w w3 w3z r r w w t t t3 - Lo schedule non appartiene alla classe CSR in quanto il grafo dei conflitti e ciclico 4

Domanda b Lo schedule e rz r w r3 r3z r w w3 w3z r r w w Le transazioni (con le versioni modificate ottenute con le assegnazioni di lock e unlock) sono: T r w r w -> l r w l u r w u T rz r w r w -> lz rz l r w l uz u r w u T3 r3 r3z w3 w3z -> l3 r3 l3z r3z w3 u3 w3z u3z 5 Nuovo schedule Lz rz l r w l3 r3 l3z r3z l r w w3 u3 w3z u3z l uz u r l u r w u w u 6 3

Eseguiamo il nuovo schedule Lz rz l r w l3 r3 l3z r3z l r w w3 u3 w3z u3z l uz u r l u r w u w u 3 lz rz l r w l3 (attesa) l r w l (attesa) l (attesa deadlock) Si verifica un deadlock 7 4