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 11 Algoritmi basati su token - 15 Algoritmi basati su quorum - 19 Algoritmi di Elezione - 20 Algoritmo Bully - 21 Algoritmo ad Anello - 23 Indice dei Contenuti Conclusioni 24 Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 2/24 1
Global State (1) 1. Lo stato globale di un sistema distribuito è dato dalla collezione degli stati locali di ogni processo più i messaggi in transito. 2. La conoscenza dello stato globale è utile in molti casi. 3. Uno snapshot distribuito è uno stato in cui un sistema distribuito si può trovare (uno stato globale consistente). Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 3/24 Global State (2) Fig. 1 - a) Un taglio consistente ; b) Un taglio inconsistente Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 4/24 2
Global State (3) Usando i distributed snapshots è possibile memorizzare uno stato globale. Vediamo come attraverso l algoritmo di Global State 1. Un processo P inizia l algoritmo memorizzando il proprio stato e invia un marker M nei canali di uscita che communica al processo destinatario Q di contribuire alla memorizzazione dello stato globale. Fig. 2 - Organizzazione di un processo Q e dei canali per uno snapshot distribuito Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 5/24 Global State (4) Lo stato locale di Q è memorizzato Fig. 3 Funzionamento Snapshot Distribuito 2. Quando un processo Q riceve un marker per la prima volta memorizza il suo stato locale e invia il marker nei suoi canali di uscita (Fig. 3 - b) 3. Q memorizza tutti i messaggi in arrivo (Fig. 3 c) 4. Q riceve un marker dai suoi canali di input e decide di terminare la registrazione dei messaggi in ingresso. (Fig. 3 - d) Il contributo del processo Q allo Stato Globale è così disponibile. Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 6/24 3
Global State (5) Quando un processo ha ricevuto ed elaborato tutti i marker nei suoi canali di ingresso completa il suo compito per l algoritmo e invia lo stato memorizzato. Un processo qualsiasi può iniziare l algoritmo e il marker sarà etichettato con l identificatore del processo iniziatore. Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 7/24 Mutua esclusione e sistemi concorrenti (1) La mutua esclusione nasce nei sistemi concorrenti N processi vogliono accedere ad una risorsa condivisa Ogni processo vuole acquisire la risorsa ed utilizzarla in modo esclusivo senza avere interferenze con gli altri processi Ogni algoritmo di mutua esclusione comprende Una sequenza di istruzioni chiamata Sezione Critica (CS) L esecuzione della sezione critica consiste nell accesso alla risorsa condivisa Una sequenza di istruzioni che precedono la sezione critica è chiamata trying protocol (TP) Una sequenza di istruzioni che seguono la sezione critica è chiamata exit protocol (EP) La gestione della risorsa condivisa viene condotta da uno scheduler che sceglie di volta in volta a quale processo consentire l esecuzione della prossima istruzione, ossia a quale processo dare accesso alla risorsa critica La sequenza decisa dallo scheduler che comprende tutte le istruzioni dei diversi processi è chiamata Schedule Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 8/24 4
Mutua esclusione e sistemi concorrenti (2) Tre proprietà sono utili a definire il problema: 1. Mutua esclusione (ME) o safety o sicurezza: al più un processo per volta è nella sezione critica 2. No deadlock (ND): se un processo rimane bloccato nella sua trying section, esistono uno o più processi che riescono ad entrare ed uscire dalla sezione critica 3. No starvation (NS) o posticipazione indefinita: nessun processo può rimanere bloccato per sempre nella trying section NS implica ND NS, oltre ad implicare una proprietà di liveness, specifica un comportamento paritetico dei vari processi (fairness o equità) Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 9/24 Algoritmi per la Mutua Esclusione Soluzioni basate su variabili condivise per realizzare la mutua esclusione tra N processi: Algoritmi basati su autorizzazioni A1 Un processo che vuole accedere ad una risorsa condivisa chiede l autorizzazione L autorizzazione può essere gestita in modo centralizzato (unico coordinatore) oppure in modo decentralizzato o completamente distribuito Algoritmi basati su token A2 Tra i processi circola un messaggio speciale, detto token Il token è unico in ogni istante di tempo Solo chi detiene il token può accedere alla risorsa condivisa Algoritmi centralizzati e decentralizzati Algoritmi basati su quorum (o votazione) A3 Si richiede il permesso di accedere ad una risorsa condivisa solo ad un sottoinsieme di processi Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 10/24 5
A1 Algoritmo Centralizzato 1. La richiesta di accesso ( ENTER ) ad una risorsa in mutua esclusione viene inviata ad un coordinatore centrale 2. Se la risorsa è libera il coordinatore informa il mittente che l accesso è consentito ( GRANTED ) 3. Altrimenti il coordinatore accoda la richiesta con politica FIFO e informa il mittente che l accesso non è consentito ( DENIED ) Oppure non risponde nel caso di sistema sincrono 4. Il processo che rilascia la risorsa ne informa il coordinatore ( RELEASED ) 5. Il coordinatore preleva la prima richiesta in attesa e invia GRANTED alsuo mittente Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 11/24 Vantaggi A1 - Algoritmo Centralizzato (2) Garantisce la mutua esclusione No starvation Semplice e facile da implementare : Solo 3 messaggi (richiesta, risposta e rilascio) per ogni accesso alla CS Svantaggi Il coordinatore è il singolo point of failure dell algoritmo Il coordinatore può diventare il collo di bottiglia per le prestazioni Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 12/24 6
A1 - Algoritmo Decentralizzato Algoritmo basato su DHT /24 A2- Algoritmi basati su token Viene utilizzato il metodo del token: Usato in molti approcci relativi ai sistemi distribuiti; L algoritmo deve definire come vengono fatte le richieste per il token, mantenute e servite; In un algoritmo basato su token in ogni istante esiste un solo processo che possiede il token Il meccanismo garantisce la safety della mutua esclusione Tipi di algoritmi basati su token: Centralizzato (o approccio token-asking o su richiesta): esiste un processo coordinatore unico, responsabile della gestione del token Decentralizzato (o approccio perpetuum mobile): il token si muove nel sistema e porta con sé tutte le strutture dati necessarie Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 14/24 7
A2- Algoritmi basati su token approccio decentralizzato Il token viaggia da un processo all altro I processi sono organizzati in un anello logico - Il token viene passato dal processo pk al processo p(k+1)mod N Il processo che ha il token è abilitato all accesso alla CS Se un processo riceve il token ma non ha necessità di accedere alla CS, passa il token lungo l anello Fig. 5 Anello Logico Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 15/24 Vantaggi A2- Algoritmi basati su token - approccio decentralizzato Se l anello è unidirezionale, viene garantita anche la fairness Rispetto al centralizzato, migliora il bilanciamento del carico Svantaggi Il token si può perdere; in questo caso, occorre rigenerarlo Perdita di token anche per malfunzionamenti hw/sw Soggetto al crash dei singoli processi 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 Rischio e attenzione ai guasti temporanei che possono portare alla creazione di token multipli L algoritmo usa sempre banda per trasmettere il token anche quando nessuno chiede l accesso alla CS Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 16/24 8
8 22/05/2013 Confronto Una comparazione dei tre algoritmi di mutua esclusione appena visti Algoritmo Messaggi per entrare/uscire Ritardo prima di entrare (in messaggi) Problemi Centralizzato 3 2 Crash del Coordinatore Decentralizzato 2 ( n 1 ) 2 ( n 1 ) Crash di un processo Token ring 1 a Da 0 a n 1 Token perso, processo in Crash Tab. 1 Confronto di Algoritmi Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 17/24 A3 - Algoritmi basati su quorum Per entrare in una CS occorre sincronizzarsi solo con il sottoinsieme dei processi interessati Algoritmi di votazione all interno del sottoinsieme I processi votano per stabilire chi è autorizzato ad entrare in CS Insieme dei processi votanti associati al processo i-mo pi: Vi ={p1,, pn} con Vi Vj per ogni i, j Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 18/24 9
A3 un Algoritmo Distribuito Un algoritmo di autorizzazioni basato sul modello distribuito è senza dubbio quello proposto da Ricart e Agrawala, che contempla 3 tipi di messaggi: REQUEST REPLY RELEASE 1. Quando un processo pi vuole accedere alla sezione critica manda un messaggio REQUEST agli altri N-1 membri di Vi 2. Quando un processo pj riceve un messaggio REQUEST da un processo pi, pj manda immediatamente un messaggio di REPLY indietro, a meno che non si trovi esso stesso in sezione critica o abbia già inviato un messaggio di REPLY ad un altro processo che non ha ancora rilasciato la sezione critica (ha già votato). Nel caso non gli mandi immedidatamente un messaggio di REPLY allora pj accoda la richiesta di pi. 3. Per rilasciare la sezione critica un processo pi invia un messaggio di RELEASE a tutti gli altri N-1 membri di Vi 4. Quando un processo riceve un msg di RELEASE allora elimina la prima entry dalla coda e manda un msg di REPLY al processo la cui richiesta è stata appena cancellata Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 19/24 A3 un Algoritmo Distribuito (2) Qualora 2 processi dovessero richiedere di entrare in CS nello stesso istante, ha la precedenza il processo con TimeStamp più basso Fig. 4 Algoritmo Distribuito a) Due processi (0 e 2) vogliono entrare nella regione critica nello stesso istante b) Il processo 0 ha il timestamp più basso (Ts=8), e vince. c) Quando il processo 0 ha finito, invia un OK, quindi il processo 2 può accedere alla regione critica. Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 20/24 10
Algoritmi di Elezione Algoritmi per eleggere un coordinatore (con un ruolo speciale) tra i processi che compongono una applicazione distribuita. Ogni processo è identificato da un identificatore numerico (ID). Ogni processo conosce l identificatore di tutti gli altri processi. Ma non sa quali sono attivi e quali non lo sono. Un algoritmo di elezione termina quando tutti i processi condordano su un coordinatore. Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 21/24 Algoritmo Bully Un processo P gestisce una elezione come di seguito: 1. P invia un messaggio ELECTION a tutti i processi con ID maggiore del proprio. 2. Se nessuno risponde, P diventa il nuovo coordinatore. 3. Se un processo con ID maggiore risponde, questo continua l algoritmo di elezione. 4. Il nuovo coordinatore informa tutti i processi. Fig.6 L algoritmo di elezione Bully: a) Il processo 4 inzia l algoritmo di elezione b) I processi 5 e 6 rispondono, informando 4 di fermarsi c) Adesso 5 e 6 prendono in carico la continuazione dell algoritmo Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 22/24 11
Algoritmo Bully Un processo P gestisce una elezione come di seguito: 1. P invia un messaggio ELECTION a tutti i processi con ID maggiore del proprio. 2. Se nessuno risponde, P diventa in nuovo coordinatore. 3. Se un processo con ID maggiore risponde, questo continua l algoritmo di elezione. 4. Il nuovo coordinatore informa tutti i processi. Fig.7 L algoritmo di elezione Bully: d) Il processo 6 informa il processo 5 di fermarsi e) Il processo 6 diventa il coordinatore e informa tutti Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 23/24 Algoritmo ad Anello Algoritmo di elezione che fa uso di un anello: 1. Ogni processo conosce chi è il suo successore 2. L algoritmo di elezione è iniziato da un processo che invia un messaggio ELECTION con il suo ID al suo successore. 3. Ogni mittente aggiunge il suo ID al messaggio. 4. Quando il messaggio ritorna all iniziatore, esso controlla il valore maggiore e invia il messaggio COORDINATOR sull anello con il numero del nuovo coordinatore. Fig. 8 Algoritmo di elezione che fa uso di un anello: I processi 2 e 5 rilevano il crash del coordinatore e avviano l algoritmo. Alla fine il processo 6 sarà eletto coordinatore. Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 24/24 12
Conclusioni Lasciate ai discenti del Corso Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano 25/24 13