Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione...

28
Modelli: processi, canali di comunicazione, tempo Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni lunedì 5 marzo 12

Transcript of Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione...

Page 1: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 2: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 3: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 4: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 5: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 6: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 7: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 8: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 9: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

Pagina

ProcessiPossiamo considerare diversi modelli di guasto:

9

Arbitrario (Bizantino)

Crash-recovery

Omission

Crash

lunedì 5 marzo 12

Page 10: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 11: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 12: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 13: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 14: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 15: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 16: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 17: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 18: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 19: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 20: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 21: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 22: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 23: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 24: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 25: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 26: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 27: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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

Page 28: Modelli: processi, canali di comunicazione, tempoquerzoni/corsi_assets/1112/... · l’assegnazione di una variabile richiede un tempo minimo la decodifica di un documento cifrato

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