Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione...
Transcript of Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione...
La versione negativa del Marchio/Logo deve essere adottata su fondo scuro. Sono da preferire i fondi Rosso Sapienza, il nero o un colore tra quelli della gamma istituzionale.
La versione negativa 3D prevede l’utilizzo dell’ombra esclusivamente sul fondo colore Rosso Sapienza.
Elementi Base. Marchio/Logo
Versione negativa 3D e al tratto
Manuale di Identità Visiva Sapienza Università di Roma
Versioni al tratto
Versione 3D
Modelli: processi, canali di comunicazione, tempo
Sistemi DistribuitiLaurea magistrale in ingegneria informaticaA.A. 2011-2012
Leonardo Querzoni
lunedì 5 marzo 12
Pagina
Complessità e modellazione■Per mascherare la complessità causata
dall’eterogeneità dei sistemi definiremo dei modelli.■L’uso di modelli astratti ci permette di definire
algoritmi che funzioneranno in tutti i contesti che aderiscono a quei modelli.■Ogni modello sarà caratterizzato da specifiche
proprietà.■Definiremo modelli per la computazione, i
processi, i canali di comunicazione ed il tempo.■L’insieme di questi modelli costituirà il nostro
modello di sistema.
2
lunedì 5 marzo 12
Pagina
Modello della computazioneComponenti del sistema: ■N processi π=(P1,P2,…Pi,…PN) ■Canali di comunicazione (link)
3
send m
Processo P1
receive
Processo P2
Canale di comunicazione
Buffer in uscita Buffer in ingresso
lunedì 5 marzo 12
Pagina
Modello della computazioneOgni processo esegue un algoritmo.La computazione eseguita da un processo è espressa tramite una sequenza di eventi:■Gli eventi possono essere interni (elaborazione) o esterni
(send/receive) ■Un singolo evento è indicato da eik: k-simo evento
generato da Pi
Se non specificato diversamente, la computazione è sempre deterministica.
4
lunedì 5 marzo 12
Pagina
Modello della computazioneL’evoluzione di una computazione può essere visualizzata con un diagramma spazio-tempo.
L’evoluzione di una computazione: esecuzione, run o history.
■ Esecuzione locale: sequenza eventi generati da un singolo processoh1=e11,e12,e13,e14,e15
■ Esecuzione locale parziale: prefisso dell’esecuzione localeh13=e11,e12,e13
■ Esecuzione globale: insieme delle esecuzioni locali
H=∪hi con 1≤i≤n
5
P1
P2
P3
e11 e12 e13 e14 e15
e21 e22 e24 e25
e31 e32 e33 e34 e35 e36
e23
lunedì 5 marzo 12
Pagina
Modello della computazioneImportante: il diagramma indica solo relazioni di ordinamento parziale tra eventi !
6
P1
P2
P3
e11 e12 e13 e14 e15
e21 e22
e31 e32 e33 e34 e35 e36
e24 e25e23
P1
P2
P3
e11 e12 e13 e14 e15
e21 e22 e24 e25
e31 e32 e33 e34 e35 e36
e23
lunedì 5 marzo 12
Pagina
ProcessiProcessi corretti■ Processi la cui computazione non termina (la loro history
locale contiene un numero potenzialmente infinito di eventi).■Gli eventi presenti nella history locale sono tutti e solo
quelli previsti dalla corretta esecuzione dell’algoritmo.
Un processo non corretto viola una delle precedenti proprietà a causa di un guasto.Importante: un processo corretto non si guasta mai ! Un processo che si guasta dopo un certo periodo di tempo non è mai corretto (neanche prima del guasto)
7
lunedì 5 marzo 12
Pagina
ProcessiProcessi corretti■ Processi la cui computazione non termina (la loro history
locale contiene un numero potenzialmente infinito di eventi).■Gli eventi presenti nella history locale sono tutti e solo
quelli previsti dalla corretta esecuzione dell’algoritmo.
Un processo non corretto viola una delle precedenti proprietà a causa di un guasto.Importante: un processo corretto non si guasta mai ! Un processo che si guasta dopo un certo periodo di tempo non è mai corretto (neanche prima del guasto)
8
lunedì 5 marzo 12
Pagina
ProcessiPossiamo considerare diversi modelli di guasto:
9
Arbitrario (Bizantino)
Crash-recovery
Omission
Crash
lunedì 5 marzo 12
Pagina
Canali di comunicazioneAssunzioni:■ I processi si scambiano messaggi su link fisici■ ogni messaggio è univocamente identificabile■ per ogni messaggio il sender è noto■ I messaggi possono essere persi dal canale■ La probabilità di un messaggio di raggiungere la sua
destinazione è strettamente maggiore di zero.
Il meccanismo fondamentale per la soluzione di questo problema è la ritrasmissione dei messaggi.
10
lunedì 5 marzo 12
Pagina
Canali di comunicazioneCaratterizziamo i link fisici che collegano i calcolatori che costituiscono il nostro sistema usando le seguenti astrazioni:■ Fair-loss link■ Stubborn link■ Perfect link
11
lunedì 5 marzo 12
Pagina
Fair-loss linkUn processo può interagire con l’astrazione Fair-loss link (fll) attraverso due primitive:■ <"ll, Send| dest, m> utilizzabile per inviare un messaggio m ad un processo destinatario dest■ <"ll, Deliver | src, m> utilizzabile per consegnare un
messaggio m ricevuto da un processo sorgente srcNota:■ il calcolatore “riceve” un messaggio (es. lo immagazzina
nel buffer della sua scheda di rete)■ successivamente il ffl lo “consegna” all’algoritmo che ne
fa uso.
12
lunedì 5 marzo 12
Pagina
Fair-loss linkIl link gode delle seguenti proprietà:■ FLL1 - Fair Loss: se un messaggio m è inviato un numero
infinito di volte da un processo Pi ad un processo Pj, e se entrambi Pi e Pj sono corretti, allora Pj consegnerà m un numero infinito di volte.
Questo significa che il link non perde tutti i messaggi.Se nè il sender nè il receiver si guastano, e se il sender invia un messaggio un numero infinito di volte, il receiver consegnerà prima o poi (eventually) il messaggio.
13
lunedì 5 marzo 12
Pagina
Fair-loss linkIl link gode delle seguenti proprietà:■ FLL2 - Finite duplication: se un messaggio m viene
inviato dal processo Pi al processo Pj un numero finito di volte, allora m non potrà essere consegnato un numero infinito di volte da Pj.
La proprietà stabilisce che la rete non esegue ritrasmissione di messaggi.
14
lunedì 5 marzo 12
Pagina
Fair-loss linkIl link gode delle seguenti proprietà:■ FLL3 - No creation: se un messaggio m viene
consegnato da un processo Pj allora m è stato precedentemente inviato a Pj da un qualche processo Pi.
La proprietà stabilisce che la rete non “crea” o “corrompe” i messaggi.
15
lunedì 5 marzo 12
Pagina
Stubborn linkCreiamo un tipo di link più affidabile implementando un meccanismo di ritrasmissione.
16
NETWORK
Fair-loss link
Stubborn link
<fll, Send> <fll, Deliver>
<sl, Send> <sl, Deliver>
lunedì 5 marzo 12
Pagina
Stubborn linkUn processo può interagire con il link attraverso due primitive:■ <sl, Send | dest, m> utilizzabile per inviare un messaggio m ad un processo destinatario dest■ <sl, Deliver | src, m> utilizzabile per consegnare un
messaggio m ricevuto da un processo sorgente srcIl link gode delle seguenti proprietà:■ SL1 - Stubborn delivery: se un processo Pi invia un
messaggio m ad un processo Pj, e se Pi e Pj sono corretti, allora Pj consegnerà m infinitamente spesso.
■ SL2 - No creation: se un messaggio m viene consegnato da un processo Pj allora m è stato precedentemente inviato a Pj da un qualche processo Pi.
17
lunedì 5 marzo 12
Pagina
Stubborn linkImplementazione:upon event <Init> do sent := ∅; startTimer (∆); upon event <Timeout> do forall (dest, m) ∈ sent do trigger <0ll, Send | dest, m> startTimer (∆)upon event <sl, Send | dest, m> do trigger <0ll, Send | dest, m> sent := sent ∪ {(dest, m)}upon event <0ll, Deliver | src, m> do trigger <sl, Deliver | src, m>
18
lunedì 5 marzo 12
Pagina
Stubborn linkProviamo intuitivamente la correttezza dell’algoritmo:■ SL1 - Stubborn delivery: Ogni messaggio per il quale
viene invocata <sl, Send> viene inviato un numero infinito di volte sul link attraverso le chiamate periodiche a <"ll, Send>. La proprietà fair loss del link sottostante ci garantisce che il destinatario riceverà il messaggio un numero infinito di volte, il che prova che la proprietà è sempre soddisfatta.■ SL2 - No creation: deriva direttamente dalla stessa
proprietà del link sottostante.
19
lunedì 5 marzo 12
Pagina
Perfect linkOra vogliamo correggere il problema della consegna multipla di ogni singolo messaggio.
20
NETWORK
Fair-loss link
Stubborn link
Perfect link
<fll, Send> <fll, Deliver>
<sl, Send> <sl, Deliver>
<pl, Send> <pl, Deliver>
lunedì 5 marzo 12
Pagina
Perfect linkUn processo può interagire con il link attraverso:■ <pl, Send | dest, m> utilizzabile per inviare un messaggio m ad un processo destinatario dest■ <pl, Deliver | src, m> utilizzabile per consegnare un
messaggio m ricevuto da un processo sorgente srcIl link gode delle seguenti proprietà:■ PL1 - Reliable delivery: se un processo Pi invia un
messaggio m ad un processo Pj, e se Pi e Pj sono corretti, allora Pj prima o poi consegnerà m.
■ PL2 - No duplication: m è consegnato al più una volta.
■ PL3 - No creation: se un messaggio m viene consegnato da un processo Pj allora m è stato precedentemente inviato a Pj da un qualche processo Pi.
21
lunedì 5 marzo 12
Pagina
Perfect linkImplementazione:
upon event <Init> do delivered := ∅;
upon event <pl, Send | dest, m> do trigger <sl, Send | dest, m>
upon event <sl, Deliver | src, m> do if (m ∉ delivered) then delivered := delivered ∪ { m }; trigger <pl, Deliver | src, m>
22
lunedì 5 marzo 12
Pagina
Perfect linkProviamo intuitivamente la correttezza:■ PL1 - Reliable delivery: Immaginiamo che un processo Pi
invii un messaggio m ad un processo Pj attraverso una chiamata a <pl, Send>. Il messaggio verrà inviato un numero infinito di volte attraverso il link stubborn sottostante. Grazie alla proprietà stubborn delivery di quest’ultimo il messaggio sarà prima o poi consegnato almeno una volta da Pj.■ PL2 - No duplication: Ogni volta che viene eseguita una <sl, Deliver> e prima di eseguire la successiva <pl, Deliver>, viene controllato che il messaggio non sia stato già consegnato.■ PL3 - No creation: deriva direttamente dalla stessa
proprietà del link sottostante.
23
lunedì 5 marzo 12
Pagina
Modellazione del tempoLe operazioni eseguite durante la computazione richiedono un tempo non sempre trascurabile:■ eventi interni■ l’assegnazione di una variabile richiede un tempo minimo
■ la decodifica di un documento cifrato richiede molto tempo
■ eventi esterni■ il tempo di trasmissione di un messaggio su un canale dipende
da:■ latenza del canale
■ banda disponibile
■ queste caratteristiche possono cambiare nel tempo
24
lunedì 5 marzo 12
Pagina
Modellazione del tempoModello sincrono:■ Limite superiore sul tempo impiegato da un processo
per eseguire un passo elementare.■ Limite superiore sul tempo necessario ad un messaggio
per transitare su un canale da sorgente a destinazione.
Il modello sincrono gode di notevoli proprietà che semplificano la realizzazione di algoritmi distribuiti: ■ Si possono usare meccanismi basati su timeout per
scoprire i processi guasti.■ Si possono sincronizzare i clock locali con un errore
massimo prevedibile
25
lunedì 5 marzo 12
Pagina
Modellazione del tempoModello sincrono:■Gli algoritmi possono procedere in round sincroni:
intervalli di tempo di durata fissa in cui è possibile far scambiare a tutti i processi un messaggio (es. 1 richiesta, n risposte)
26
Middleware Laboratory
Il Modello della Computazione Distribuita 7
Modello sincrono: cosa offreDal punto di vista algoritmico sono numerosi i meccanismi usati che
sfruttano le proprietà di processi e canali di un modello sincrono
- Si possono usare timeout (maggiore della somma tra il limite superiore sul tempo di un passo elementare ed il tempo di consegna di un messaggio) per scoprire il guasto di un processo
- Si possono sincronizzare i clock locali con un errore limitato sulla differenza istantanea di due qualsiasi valori di clock
- Gli algoritmi possono procedere in cosidetti round sincroni: intervalli di tempo di durata fissa in cui è possibile far scambiare a tutti i processi un messaggio (es. 1 richiesta, n risposte)
round 1 round 2 round n
Middleware Laboratory
Il Modello della Computazione Distribuita 8
Il modello di sistema asincrono
Processi
Nessun limite superiore conosciuto a priori sul tempo per eseguire un passo elementare
Clock: nessuna assunzione sulla loro sincronizzazione
Canali
Nessun Limite superiore conosciuto a priori sulla consegna di un messaggio da sorgente a destinazione
Warning: assumere il sistema ASINCRONO significa
mettersi nel caso più generale possibile. Se un
algoritmo è risolvibile in un sistema asincrono lo è
anche in un sistema sincrono (poste identiche le
altre eventuali proprietà su guasti, determinismo,
etc). Non è vero il viceversa!
lunedì 5 marzo 12
Pagina
Modellazione del tempoModello asincrono:■Nessun limite al tempo impiegato da un processo per
eseguire un passo elementare.■Nessun limite superiore sul tempo necessario ad un
messaggio per transitare su un canale da sorgente a destinazione.
È il modello più generale:■ Se un problema è risolvibile da un dato algoritmo in un
modello sistema asincrono allora lo stesso algoritmo risolve lo stesso problema in un modello di sistema sincrono.■ Non sempre questa soluzione è la migliore !
■ Il viceversa non è quasi mai vero.
27
lunedì 5 marzo 12
Pagina
Modellazione del tempoModello parzialmente sincrono:■ I sistemi reali raramente sono completamente asincroni■ I sistemi sincroni sono limitati a particolari applicazioni
Comunemente i sistemi reali si comportano in modo prevedibile per la maggior parte del tempo.Sporadicamente possono mostrare un comportamento asincrono.Sincronia parziale:■ Esiste un tempo dopo il quale il sistema si comporta
come un sistema sincrono.
28
lunedì 5 marzo 12