Sincronizzazione e coordinamento nel distribuito



Documenti analoghi
Indice dei Contenuti

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

Coordinazione Distribuita

Mutua esclusione distribuita

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

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

Sincronizzazione distribuita: Mutua esclusione ed elezione

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

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

Deadlock (stallo) Parte III. Deadlock

Sincronizzazione nei Sistemi Distribuiti (parte 2)

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

Coordinamento e sincronizzazione

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

CAPITOLO 7 - SCAMBIO DI MESSAGGI

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

Concorrenza fra processi remoti

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

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Esecuzione concorrente di transazioni

Inizializzazione degli Host. BOOTP e DHCP

Introduzione alle applicazioni di rete

Sommario. Modellazione di Kerberos mediante DASM. Kerberos (1) Descrizione Kerberos. Descrizione Kerberos Modellazione Analisi di Correttezza

Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.

Introduzione ai Metodi Formali

LIVELLO DATA LINK (DI LINEA)

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

Il problema del produttore e del consumatore. Cooperazione tra processi

Esempio produttori consumatori. Primitive asincrone

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

Pronto Esecuzione Attesa Terminazione

Soluzione dell esercizio del 2 Febbraio 2004

Corso di Programmazione Concorrente

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

Il protocollo BitTorrent

Il costrutto monitor [Hoare 74]

LA SINCRONIZZAZIONE TRA PROCESSI

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

SISTEMI OPERATIVI DISTRIBUITI

Istruzioni (1): L elaborato verrà letto, compilato e fatto girare per verificare la correttezza della sintassi e delle operazioni svolte

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Approfondimento di Marco Mulas

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

P2-11: BOOTP e DHCP (Capitolo 23)

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Introduzione alla teoria dei database relazionali. Come progettare un database

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Modello a scambio di messaggi

CAPITOLO 27 SCAMBIO DI MESSAGGI

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

Database. Si ringrazia Marco Bertini per le slides

Send/receive sincrona, assumendo che la condivisione avvenga mediante riferimenti logici coincidenti, invece che con capability.

Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Descrizione di un algoritmo

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Deadlock e Starvation

CONTROLLO DI GESTIONE DELLO STUDIO

Monitor. Introduzione. Struttura di un TDA Monitor

Il costrutto monitor [Hoare 74]

GESTIONE DEI BENI USATI

SCHEDULATORI DI PROCESSO

2. Simulazione discreta: approcci alla simulazione

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Matematica in laboratorio

Progettazione di Basi di Dati

I file di dati. Unità didattica D1 1

DMA Accesso Diretto alla Memoria

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

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

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

ISTRUZIONI PER L UTILIZZO DEL SOFTWARE Moda.ROA. Raccolta Ordini Agenti

"Il più grande patrimonio di un'azienda è rappresentato dai suoi Clienti, perché senza Clienti non esistono aziende"

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

MODELLO AD AMBIENTE GLOBALE

Modulo 8 Ethernet Switching

Allegato A: Regole tecniche per la gestione dell identità.

ACCESSO AL SISTEMA HELIOS...

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

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Procedura SMS. Manuale Utente

Express Import system

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Inizializzazione, Assegnamento e Distruzione di Classi

Lezione 8. La macchina universale

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Introduzione ai tipi di dato astratti: applicazione alle liste

CAPITOLO 24 I MONITOR

Transcript:

Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti stabilire le relazioni di ordinamento temporale fra gli eventi Sincronizzazione in sistemi distribuiti: - sincronizzazione di orologi - mutua esclusione - algoritmi di elezione - transazioni atomiche - gestione dello stallo Definizione di algoritmi distribuiti - informazione distribuita sui nodi - decisione dei processi basata su informazione disponibile localmente - tolleranza ai guasti di singoli nodi - mancanza di un orologio globale o tempo assoluto 1 Mutua esclusione Sincronizzazione interna: concordata fra un insieme di processi esterna: forzata da un agente esterno Mutua esclusione in ambito distribuito Attività di coordinamento fra processi per realizzare la condivisione di risorse e garantirne la consistenza in un sistema distribuito Es: accesso ad un file in scrittura Meccasismo indipendente dallo specifico metodo di gestione della risorsa Accesso esclusivo (temporaneo) Se un insieme di processi concorda chi ha il diritto -> algoritmi di elezione Mutua esclusione distribuita di un insieme di risorse 1. Al più un processo per volta esegue la sezione critica (safety) 2. Un processo che chiede di entrare in una sezione critica alla fine la ottiene e al termine lo lascia (assenza di stallo e attesa infinita) (liveness) 3. L ingresso nella sezione critica deve rispettare la relazione d ordine causale (ordering) SOD.2

Algoritmo del servente centrale Mutua esclusione con gestione di token - algoritmo centralizzato Più semplice: si simulano le primitive offerte dal sistema centralizzato tramite un processo coordinatore un processo chiede al coordinatore di entrare e se necessario si blocca la risposta è un token di accesso alla ricezione della risposta entra nella sezione critica quando esce dalla critica lo comunica al coordinatore (restituisce il token) Un insieme di richieste sono servite in ordine di arrivo Non soddisfa il criterio 3 Processo coordinatore è un processo servente elemento centrale possibile collo di bottiglia in caso di guasto il processe cliente bloccato può non rilevare l evento p 1 Coda di richieste 1. Richiesta token p 2 Server 4 2 2. Rillascio token p 3 3. Conferma token p 4 Vantaggi: semplicità - assenza di stallo - assenza di attesa infinita SOD.3 SOD.4

Algoritmo distribuito Assunzioni - esiste un ordinamento globale degli eventi - trasmissione affidabile un processo che vuole entrare nella sezione critica manda un messaggio a tutti in multicast con - nome della sezione critica - proprio identificatore - timestamp locale si pone in attesa della risposta da tutti ottenuti tutti gli OK entra nella sezione critica all uscita dalla s.c. manda OK a tutti i processi in coda un processo che riceve può - non essere nella s.c. richiesta e non vuole entrarvi-> manda OK al mittente - essere nella s.c. -> non risponde e mette il messaggio in coda locale - voler entrare nella s.c. -> confronta i timestamp e la più anziana ha maggior priorità, se è l altro invia OK, se è lui pone il messaggio in coda Come una gestione di token logico condiviso Ogni processo è in uno stato : RELEASED - WANTED - HELD SOD.5 Algoritmo di Ricart e Agrawala s Inizializzazione: state := RELEASED; Protocollo di ingresso nella sezione critica state := WANTED; Multicast request a tutti i processi; elaborazione della request rinviata qui T := timestamp della richiesta; Wait until (numero di risposte ricevute = (N 1)); state := HELD; Alla ricezione del messaggio di richiesta <T i, p i > a p j (i j) if (state = HELD or (state = WANTED and (T, p j ) < (T i, p i ))) then accoda request da p i senza rispondere; else rispondi subito a p i ; end if Protocollo di uscita dalla sezione critica state := RELEASED; rispondi a tutte le richieste; SOD.6

Esempio di sincronizzazione con multicast Algoritmo distribuito - efficienza e correttezza 41 41 p 3 Assenza di stallo Assenza di attesa infinita (ordinamento globale) Garantisce le condizioni 1-2-3 Algoritmo totalmente distribuito - nessun elemento centrale p 1 41 p 1 e p 2 chiedono di entrare nella s.c. p 3 non è interessato Reply Reply 34 p 2 34 Reply 34 Limiti: dati N processi occorrono 2(N-1) messaggi (per richiesta multicast e risposte) se è supportato il multicast eventualmente N prestazioni e costo se un processo fallisce nessun altro potrà entrare nella s.c. tolleranza ai guasti soluzione: usare richieste non bloccanti tutti i processi possono essere collo di bottiglia ogni processo partecipa ad ogni decisione prestazioni Varianti e ottimizzazioni SOD.7 SOD.8

Algoritmo ad anello Mutua esclusione con gestione ad anello Anello logico: ordinamento circolare dei processi all inizio il processo 1 ha un token che poi passa al successivo Il processo che ha il token è abilitato all accesso alla sezione crititca p 1 p 2 Verifica delle condizioni 1 e 2 La condizione 3 non è necessariamente garantita - Costo numero di messaggi per ottenere il token: [1,N-1] per uscire dalla sezione critica: 1 per sincronizzazione sulla sezione critica: [1,N-1] - Affidabilità se un processo fallisce occorre riconfigurare l anello logico se fallisce il processo che possiede il token occorre eleggere il prossimo processo che avrà il token perdita di token anche per malfunzionamenti hw/sw rischio e attenzione ai guasti temporanei che possono portare alla creazione di token multipli - Prestazioni l algoritmo usa sempre banda per trasmettere il token anche quando nessuno chiede la s.c. SOD.9 p n p 3 p 4 Token SOD.10

Algoritmo di votazione Algoritmo di votazione - condizioni Per entrare in una sezione critica occorre sincronizzarsi solo con il sottoinsieme dei processi interessati Algoritmi di elezione all interno del sottoinsieme I processi votano per stabilire chi è autorizzato ad entrare nella s.c. insieme di votazione V i sottoinsieme di {p 1,, p N }, associato ad ogni processo p i un processo per entrare in una s.c. invia una richiesta a tutti gli altri membri di V i attende le risposte reply ricevute tutte le risposte di usa la s.c. al rilascio della s.c. invia un relese a tutti gli altri membri di V i un processo p j in V i che riceve la richiesta - se è nello statoheld o ha già risposto dopo aver ricevuto l ultimo messaggio release non risponde e accoda la richiesta - altrimenti risponde subito con un reply un processo che riceve un release estrae una richiesta dalla coda e invia un reply SOD.11 Definizione dei V i - processo p i appartiene a V i - V i e V j hanno intersezione non vuota, almeno un membro comune - cardinalità costante (K) di V i per equità - ogni processo p j appartiene ad M insiemi V i Assunzioni: K= N e M=K Definizione degli insiemi: non banale Garantita la condizione 1 I processi p i e p j che competono per la stessa s.c. hanno intersezione non vuota di V i e V j Possibilità di stallo - condizione di attesa circolare Varianti per la rimozione dello stallo: elaborazione delle richieste in ordine causale -> verifica anche della condizione 3 - Costo ingresso nella s.c. 2 N messaggi, uscita dalla s.c. N messaggi rispetto all algoritmo distribuito 3 N < 2(N-1) se N>4 - Affidabilità guasto di un processo non partecipante non influenza l algoritmo SOD.12

Algoritmo di Maekawa parte 1 Algoritmo di Maekawa parte 2 Inizializzazione state := RELEASED; voted := FALSE; Protocollo di ingresso nella sezione critica per p i state := WANTED; Multicast request a tutti i processi in V i {p i }; Wait until (numero di risposte ricevute = (K 1)); state := HELD; Alla ricezione di una richiesta da p i a p j (i j) if (state = HELD or voted = TRUE) then accoda request da p i senza rispondere; else invia reply a p i ; voted := TRUE; end if Continua SOD.13 Protocollo di uscita dalla sezione per p i state := RELEASED; Multicast release a tutti i processi in V i {p i }; Alla ricezione di un messaggio release da p i a p j (i j) if (coda di richieste non vuota) then estrai la prima richiesta in coda da p k ; invia reply a p k ; voted := TRUE; else voted := FALSE; end if SOD.14

Confronti Algoritmi per la realizzazione della mutua esclusione in ambito distribuito Algoritmo messaggi per entrata ritardo problemi e uscita dalla s.c. Centralizzato 3 2 guasto del coordinatore Distribuito 2(N-1) 2(N-1) crash di processo Anello [1,N] [0,N-1] perdita del token crash di processo Votazione 2 N (entrata) 2 N crash di processo del N (uscita) N gruppo votante Varianti per maggiore tolleranza ai guasti Centralizzato è il più semplice SOD.15 Algoritmi di Elezione Scegliere un processo che agisca come coordinatore Ipotesi - tutti i processi sono numerati in modo univoco - solitamente il coordinatore è il processo vivo con numero più alto - ogni processo conosce il numero di tutti gli altri Obbiettivo: alla fine dell algoritmo tutti i processi concordano su un processo eletto Un processo chiama una elezione Ogni processo può essere partecipante o no alla elezione Il processo eletto è unico anche se più processi hanno chiamato l elezione Ogni processo ha un identificatore di processo eletto p i ha eletto i event. indefinito Requisiti durante una esecuzione di un algoritmo di elezione P è il processo eletto al termine del run dell algoritmo, processo attivo con identificatore max 1. ogni processo p i ha eletto i = P o indefinito (safety) 2. Tutti i processi partecipano e al termine ogni p i che sia attivo ha eletto i non indefinito (liveness) SOD.16

Algoritmi di Elezione - Ordinamento circolare Algoritmo di elelzione basato su anello Ipotesi: comunicazione affidabile - i processi sono soggetti a guasti Ordinamento circolare [Chang e Roberts] Anello logico : lista ordinata di processi vivi Il messaggio di elezione viene inviato solo al processo successivo Ogni processo aggiunge sé stesso alla lista dei processi vivi Al termine il processo che riceve un messaggio di elezione dove il primo # è il suo si riconosce come processo coordinatore e lo comunica in modo circolare 9 4 3 17 24 Ogni processo inizialmente non partecipa all elezione, diventa partecipe aggiungendo il suo nome alla lista se l id del messaggio di elezione è maggiore, lo passa e diventa partecipante se l id del messaggio di elezione è minore, mette il proprio id e lo passa (se non è già partecipante) se l id del messaggio di elezione è uguale, allora è coordinatore e diventa non partecipante, manda il messaggio eletto ogni altro processo che riceve messaggio eletto si marca non partecipante SOD.17 15 Nota: Elezione iniziata dal processo 17. L id. di processo più alto finora incontrato è 24. I processi che partecipano sono quelli scuri. 28 1 24 SOD.18

Ordinamento circolare - condizioni Algoritmo bully Verifica la condizione 2 Caso pessimo: una chiamata di elezione, (3N-1) messaggi necessari per completare l elezione Tempo di risposta: proporzionale a (3N-1) Tolleranza ai guasti: scarsa Migliorabile con identificazione di guasti e ricostruzione dell anello Algoritmo bully [Garcia Molina] Seleziona il processo con il numero più alto un processo indice l elezione inviando il messaggio di elezione ai processi con id più alto, e aspetta le risposte se la risposta non arriva entro un timeout si nomina coordinatore (si autoelegge!) e lo comunica agli altri inviando un messaggio coordinatore a tutti i processi con id più basso altrimenti aspetta una altro tempo per l arrivo di un messaggio coordinatore, e se non arriva, indice un altra elezione Ipotesi: processi non affidabili, soggetti a guasti, comunicazione affidabile sistema sincrono: uso di timeout per riconoscere i guasti ogni processo consce i processi con gli identificatori maggiori e può comunicare con questi Tre tipi di messaggi elezione risposta coordinatore SOD.19 un processo che riceve un messaggio coordinatore registra il # e lo considera coordinatore un processo che riceve un messaggio elezione, invia una risposta al mittente ed indice a sua volta una elezione se già non lo ha fatto, anche se esiste un altro coordinatore SOD.20

Algoritmo bully - esempio Algoritmo bully - condizioni Elezione del coordinatore p 2, dopo il guasto di p 4 e poi di p 3 Stage 1 Stage 2 Stage 3 election election C p 1 answer p 2 p 3 p 4 answer election election election C p 1 p 2 answer p 3 p 4 timeout Eventually... p 1 p 2 p 3 p 4 Quando viene indetta una elezione? - quando un processo viene riattivato dopo un guasto e se ha l id più alto diventa coordinatore e lo annuncia (anche se esiste già un altro coordinatore) - quando un processo nota che il coordinatore non risponde - quando riceve un messaggio di elezione da un processo con numero inferiore Costo caso pessimo O(n 2 ) messaggi caso ottimo O(n-2) messaggi Garantisce la condizione 2 (liveness) ma non la 1 (safety) nel caso di guasti in cui un processo viene rimpiazzato da un altro con lo stesso id coordinator C Problema della accuratezza del timeout Stage 4 p p p 1 p 2 3 4 SOD.21 SOD.22

Gestione dello stallo Effetto collaterale della mutua esclusione (accesso esclusivo ad una risorsa da parte di un processo) se sono vere anche le condizioni di - allocazione di risorse senza prelazione - il sistema non può forzare il rilascio della risorsa da un processo - hold and wait - un processo che ha assegnata una risorsa non la rilascia (la blocca) e si può porre in attesa di un altra risorsa - attesa circolare - esiste un cammino chiuso nel grafo di allocazione Stallo - condizioni Esempio senza mutua esclusione Esempio con prelazione P1 P2 P1 P2 R1 R2 R1 R2 P1 R1 P2 R2 assegnamenti di risorse richieste di risorse SOD.23 P1 R1 P2 R2 Esempio senza attesa circolare assegnamenti di risorse richieste di risorse SOD.24

Tecniche di gestione dello stallo Se la risorsa è un buffer si parla di stallo della comunicazione Se coinvolge due nodi stallo diretto store and forward Se coinvolge più nodi stallo indiretto store and forward Tecniche (PAID) - prevenire - evitare - ignorare - rilevare Avoidance (Evitare) come in sistemi centralizzati: determinare lo stato stabile in base alle esigenze dei processi Svantaggi: - i processi spesso non possono specificare le esigenze in termini di allocazione di risorse - algoritmo inefficiente già in sistemi centralizzati, NP SOD.25 Tecniche: prevenzione lo stallo Si agisce su una condizione - m.e. e prelazione spesso non si possono eliminare Alternative: permettere una sola allocazione di risorsa -> evita il ciclo ma a volte dei processi devono usare accessi simultanei preallocazione di risorse ogni processo ottiene le risorse prima dell esecuzione inefficienza (basso utilizzo delle risorse se i tempi di esec. sono lunghi) rilascio forzato delle risorse -> evita il ciclo ogni processo è forzato a liberare le risorse prima di un altra richiesta così altri processi possono continuare ordinamento di acquisizione delle risorse -> evita il ciclo risorse numerate e accesso/acquisizione solo in ordine crescente si alloca solo se tutte le risorse già allocate hanno un numero inferiore regole di anzianità timestamp unico per ogni processo un processo deve lasciare le risorse se sono richieste da un processo più anziano SOD.26

Tecniche: ignorare e rilevare Algoritmo di rilevazione dello stallo Ignorare Spesso usato - Es. Unix Intervento del sistemista o notifica dell utente Rimozione eliminando la condizione di attesa ciclica, es. terminando un processo Rilevare Più applicato Algoritmo di Chandy-Misra-Haas Basato su messaggio test inviato se un processo - non riesce ad ottenere una risorsa o - se scatta un timeout Rimozione eliminando la condizione di attesa ciclica, es. terminando un processo Test con tre campi: - identificatore del processo bloccato - che invia il messaggio - destinatario del messaggio SOD.27 un processo P1 bloccato inizia un test e lo invia al processo P2 che ha la risorsa il processo P2 che riceve il messaggio test se non vuole altre risorse finisce il test altrimenti se è bloccato su P3 invia a P3 un messaggio modificato se un processo riceve un messaggio con primo e terzo campo uguale -> rileva lo stallo stallo P1 P1 P2 P1 P1 P2 P1 P2 P3 P1 P2 P3 A A A B A B A B SOD.28

Rimozione dello stallo Rilevato lo stallo occorre rimuoverlo - segnalazione al sistema - determinazione del processo da terminare - terminazione del processo e rilascio delle risorse - rollback ad uno stato consistente - uso di checkpoint per il rollback Problemi: determinazione della frequenza del checkpoint Per evitare la attesa infinita: aumentare la priorità del processo terminato SOD.29