• Non ci sono risultati.

Comunicazione: primitive. Comunicazione rendez-vous

N/A
N/A
Protected

Academic year: 2022

Condividi "Comunicazione: primitive. Comunicazione rendez-vous"

Copied!
5
0
0

Testo completo

(1)

Comunicazione II S.Balsamo - A. 2007 R13.1

Reti di calcolatori Reti di calcolatori

Prof.ssa Simonetta Balsamo Dipartimento di Informatica Università Ca’ Foscari di Venezia balsamo@dsi.unive.it http://www.dsi.unive.it/~reti

Comunicazione II

Comunicazione II S.Balsamo - A. 2007 R13.2

Comunicazione: primitive

Comunicazione: sincrona/asincrona - Primitive bloccanti/non bloccanti Ritardo nell’invocazione della primitiva:

non bloccante nessun ritardo bloccante comunicazione sincrona Primitive non bloccanti

send termina appena il messaggio è stato accodato o copiato localmente per la trasmissione

receive segnala la disponibilità a ricevere e predispone un’area di ricezione

uso di interruzioni per segnalare il completamento dell’operazione Primitive bloccanti

send non termina finché il messaggio non è stato trasmesso (anche ricevuto per comunicazione affidabile) receive non termina finché il messaggio non è nel buffer di ricezione

Comunicazione II S.Balsamo - A. 2007 R13.3

Comunicazione: primitive

Vantaggi e limiti Primitive non bloccanti

+ flessibilità

+ possibilità di prevedere la durata (e.g. comunicazione real-time) - possibile accesso multiplo all’area messaggi

- impredicibilità dello stato dell’altro: possibile difficoltà di programmazione - testing dei programmi più complesso

Primitive bloccanti + sicurezza

- impossibilità di prevedere la durata - limite al grado di parallelismo esplicitabile

Comunicazione II S.Balsamo - A. 2007 R13.4

Comunicazione: primitive e buffer

Buffer: spazio di memorizzazione coda di messaggi fra mittente e destinatario

Dimensione del buffer zero

finita infinita Buffer pieno send ritardata

send che provoca errore nel mittente Buffer vuoto receive ritardata

receive che provoca eccezione nel destinatario Buffer infinito la send non è mai ritardata

-> send asincrona

il mittente può continuare indipendentemente dal destinatario Buffer zero send e receive sincronizzate

-> send e receive sincrone - bloccanti

Comunicazione II S.Balsamo - A. 2007 R13.5

Comunicazione rendez-vous

Buffer zero: primitive bloccanti

Comunicazione rendez-vous (es. CSP, Occam,…) cliente e serventi hanno spazi di indirizzamento diversi deve essere resa visibile una interfaccia di ciascuno deve essere nota l’identità di ciascuno Uso del servizio di denominazione Pacchetti trasmessi dal supporto (trasporto)

send

Cliente ack

ack

Servente risposta

fase di rendez-vous Comunicazione II S.Balsamo - A. 2007 R13.6

Comunicazione con buffer finito

Buffer finito

il destinatario può specificare la dimensione massima del buffer il mittente può avanzare rispetto al destinatario di tale dimensione Gestione del buffer, maggiore complessità di implementazione del protocollo di comunicazione

Gestione degli oggetti (buffer e messaggi)

Primitive: sincrone bloccanti sincronizzazione mittente-destinatario sincrone non bloccanti sincronizzazione del messaggio successivo recupero del messaggio asincrone non bloccanti

asincrone bloccanti

quanto tempo aspettare?

Introduzione del time-out cliente e servente

(2)

Comunicazione II S.Balsamo - A. 2007 R13.7

Comunicazione con buffer finito

Comunicazione con primitive sincrone e buffer finito:

possibile deadlock

send

Cliente send Servente

In caso di assenza di memoria i due processi si bloccano vicendevolmente Possibile deadlock dovuto ad un ciclo di comunicazioni bloccate

Comunicazione II S.Balsamo - A. 2007 R13.8

Comunicazione e affidabilità

 Tolleranza ai guasti e agli errori

perdita di messaggi

duplicazione di messaggi

nodi non raggiungibili

ordinamento di messaggi

 Primitive affidabili / non affidabili (con / senza ack)

garanzia di consegna (uso di ack)

time-out e ritrasmissione

Quante ritrasmissioni?

Quale durata di time-out?

 Progettazione della comunicazione: a che livello introdurre la affidabilità della comunicazione?

prestazioni

costo

flessibilità

Comunicazione II S.Balsamo - A. 2007 R13.9

Comunicazione e affidabilità

Affidabilità e semantica della comunicazione

 may be non si sa se la comunicazione è avvenuta

at least once la comunicazione può essere avvenuta più volte possibili messaggi duplicati

at most once la comunicazione è avvenuta al più una volta può non essere avvenuta

il mittente può non sapere dell’esito -> ritrasmissione

->numerazione da parte del destinatario

exacly once la comunicazione è avvenuta esattamente una volta oppure non è avvenuta e il mittente conosce l’esito il destinatario traccia le comunicazioni e scarta i

duplicati

quanto deve essere lunga la storia delle comunicazioni?

-> semantica con conoscenza dello stato dell’altro e durata del protocollo

Comunicazione II S.Balsamo - A. 2007 R13.10

Comunicazione tipi di primitive

Primitive

 simmetriche

send(nome_destinatario, messaggio) receive(nome_mittente, messaggio)

asimmetriche

send(nome_destinatario, messaggio) receive(qualsiasi_mittente, messaggio)

 lascia libertà ai processi

 minore leggibilità

 minore modularità

 non si possono avere più clienti contemporaneamente

indiretteuso di link, porte o altre entità intermedie link: canale di comunicazione unidirezionale

il mittente conosce il destinatario e non viceversa send(link, buffer) receive(link, buffer) il cliente conosce il link del servente e invia un link al servente per avere la risposta

migliore dinamicità - migrazione

uso di aree dedicate alla trasmissione anche di grandi dimensioni

maggior overhead Comunicazione II S.Balsamo - A. 2007 R13.11

Comunicazione tipi di primitive

Porte

oggetto protetto dal nucleo con operazioni specifiche:

invio, ricezione, priorità send(porta, buffer) receive(porta, buffer) solo un processo per volta può effettuare le operazioni consentite alla porta è associata una coda FIFO

il processo proprietario della porta può distribuire i diritti e passare anche la porta quando il processo termina la porta termina (può provocare eccezioni agli altri) mailbox

nome globale per la comunicazione indiretta send(mailbox, buffer) receive(mailbox, buffer) overhead

Comunicazione II S.Balsamo - A. 2007 R13.12

Comunicazione a gruppi

Comunicazione uno - a - tutti: broadcast Comunicazione uno - a - molti: multicast

messaggio multicast inviato da uno ad un gruppo utile per tolleranza ai guasti in applicazioni distribuite Multicast

Motivazioni per il multicast

• Tolleranza ai guasti - replicazione servizi - stessa richiesta a più serventi in parallelo; tollera guasti dei serventi

•ricerca e localizzazione di oggetti distribuiti - es. File system distribuito: il server appropriato risponde

•replicazione dei dati - migliori prestazioni - ad una modifica il gestore delle copie invia messaggio multicast

•aggiornamento multiplo

(3)

Comunicazione II S.Balsamo - A. 2007 R13.13

Protocolli multicast

Come si trattano le risposte?

senza attesa attesa di una sola risposta attesa di alcune risposte - quante?

attesa di tutte le risposte

Mittente

Destinatario 1

Destinatario 2

Destinatario 3 richiesta

multicast

risposta 1

risposta 2

risposta 3 richiesta ripetuta per 3

Comunicazione II S.Balsamo - A. 2007 R13.14

Protocolli multicast

Sollecito selettivo globale Conferma positiva (ack)

negativa (nack) Numero di conferme attese Semantica del multicast Implementazione del multicast

indirizzi di gruppo classe D nel protocollo IP (livello 3) supporto di broadcast es. Ethernet

supporto punto-a-punto

lista con uso di attributi: invio di messaggi con predicato il destinatario che soddisfa il predicato può ricevere il messaggio

Comunicazione II S.Balsamo - A. 2007 R13.15

Multicast: atomicità e affidabilità

Multicast atomico

garanzia di consegna a tutti i componenti del gruppo ricevuto da tutti o da nessuno

Multicast affidabile garanzia di consegna Multicast non affidabile

spedisce una sola volta

Ordinamento dei messaggi ai destinatari?

Singoli multicast atomici mantengono l’ordine FIFO dei messaggi - per un mittente e un destinatario

ma per più mittenti di multicast si può avere disordine

Comunicazione II S.Balsamo - A. 2007 R13.16

Protocolli multicast

Multicast totalmente ordinato per trasmettere da più clienti I messaggi trasmessi ad un gruppo in multicast arrivano ad ogni membro del gruppo in ordine

mitt 1 mitt 2 mitt 3 mitt 4

A

B

A B B A

Comunicazione II S.Balsamo - A. 2007 R13.17

Protocolli multicast: ordinamento

Multicast FIFO

ordinamento solo dallo stesso mittente allo stesso destinatario Multicast causale

ordinamento logico (causale)

consegna in un ordine che rispetta una regola di causalità se un evento A precede un evento B

allora i messaggi sono consegnati rispettando tale ordine algoritmi di ordinamento (Lamport)

Multicast totalmente ordinato

se atomico, consegna ad ogni membro del gruppo nello stesso ordine

Differenza fra multicast causale ed atomico

Comunicazione II S.Balsamo - A. 2007 R13.18

Protocollo multicast:

implementazione

Diverse implementazioni del multicast

* semplice ma non efficiente: tramite send potenzialmente inaffidabile

procedure multicast (dest: array of PortId; m: messaggio);

var i: cardinal;

begin

for i:=0 to Max (dest) do Send (dest(i),m);

end;

* per multicast affidabile:

- controllo di perdita di messaggi - crash del mittente attesa della risposta time-out e ritrasmissione

(4)

Comunicazione II S.Balsamo - A. 2007 R13.19

Protocollo multicast affidabile:

implementazione

* gestione dei guasti - omissione di messaggi - failure del mittente occorre effettuare un monitoraggio

- controllo della trasmissione corrente - eventuale ritrasmissione - rimozione dei processi falliti - gestione del gruppo implementazione:

- invio del messaggio a tutto il gruppo - attesa della risposta - time-out e ritrasmissione problema: guasto del monitor

- attesa, quanto?

Comunicazione II S.Balsamo - A. 2007 R13.20

Protocollo multicast atomico e affidabile

1 mittente invia un messaggio al gruppo e aspetta ack da ognuno 2 se arrivano tutti gli ack OK

altrimenti se non arrivano entro un timeout: ritrasmissione ripetendo l’attesa un dato numero di volte, oltre le quali si elimina dal gruppo chi non risponde

Quando un processo aspetta la risposta da un altro processo del gruppo, lo monitorizza (mittente) per identificare possibili eventuali guasti (richiede la trasmissione della risposta)

Possibile esclusione da un gruppo.

Muticast atomico e affidabile - costoso

Comunicazione II S.Balsamo - A. 2007 R13.21

Protocollo multicast atomico e affidabile

Problema: guasto mittente Per atomicità

ogni destinatario invia un ack e monitorizza il mittente per attesa di conferma il mittente completato il multicast, manda conferma a tutti (in m. atomico) Con un multicast per volta il successivo è la conferma dal mittente del m.

precedente - soluzioni inefficienti -

Comunicazione II S.Balsamo - A. 2007 R13.22

Hold-back queue

Altre soluzioni al multicast atomico e affidabile Hold-back queue

Il messaggio a destinazione viene tenuto in sospeso prima di essere consegnato, fino all’arrivo del messaggio di consegna

Per garantire l’ordinamento e l’atomicità i messaggi sono numerati e ogni messaggio è ritardato finché non arrivano i precedenti

Atomicità e ordine

Mittente

Destinatario Hold back queue

Coda di destinazione

Comunicazione II S.Balsamo - A. 2007 R13.23

Negative ack

Altre soluzioni al multicast atomico e affidabile Negative ack

I messaggi sono numerati ordinatamente dal mittente

Il destinatario invia un segnale di NACK se il numero di messaggio arrivato non è in sequenza

Il destinatario non invia ACK

Il mittente ha copia (storia) dei messaggi inviati Gestione possibili guasti del mittente recuperabili dal destinatario Anche i destinatari devono avere la storia dei messaggi Problema della lunghezza della storia

Possibili occasionali ack positivi (con # messaggio ricevuto) in piggyback

Comunicazione II S.Balsamo - A. 2007 R13.24

Multicast atomico e totalmente ordinato

Si associa ad ogni messaggio un identificatore unico totalmente ordinato Un messaggio è stabile a destinazione se non possono arrivare altri messaggi con id. più basso.

Si passano ai livelli superiori (applicazione) solo i messaggi stabili

Semplice da realizzare se ogni mittente usa il # in sequenza con riferimento ad un ordinamento totale

Ogni destinatario è sicuro del messaggio solo se non esiste un gap con il successivo

Sequenza condivisa di identificatori

(5)

Comunicazione II S.Balsamo - A. 2007 R13.25

Multicast atomico e totalmente ordinato

Soluzioni:

a) usare una marca temporale (timestamp) da orologi logici o fisici b) usare un processo sequenziatore

c) usare un protocollo fra i membri del gruppo per la generazione di un identificatore

Soluzioni b e c integrano il calcolo dell’identificatore con il multicast Problemi aperti

Comunicazione II S.Balsamo - A. 2007 R13.26

Multicast atomico e totalmente ordinato

Implementazione:

- centralizzata

unico gestore che ordina collo di bottiglia - distribuita

coordinamento fra i riceventi che concordano l’ordine diverse implementazioni

es. un gestore per ogni richiesta soluzione inefficiente e poco scalabile es. uso di broadcast

solo per casi particolari algoritmi distribuiti per sistemi distribuiti

Comunicazione II S.Balsamo - A. 2007 R13.27

Multicast in Java

Implementazione in Java

Java fornisce un insieme di classi primitive per il multicast

MulticastSocket sottoclasse di DatagramSocket Invio di messaggi in multicast è simile all’invio su un socket UDP

- creare un datagram - specificare il TTL (numero di hop) Operazioni:

- creazione un socket multicast - iscrizione ad un gruppo multicast - invio dati al gruppo - ricezione dal gruppo - abbandono del gruppo

Riferimenti

Documenti correlati

Sono stati riconosciuti la notevole crescita dell’attività con forte attrattività verso pazienti extra regionali, l’importante miglioramento della struttura, il

Maria Cecilia GUERRA – Vice-Ministro del Lavoro e delle Politiche Sociali Le riflessioni e le proposte delle organizzazioni della società civile e delle parti sociali. Nina DAITA

„ Gli host rispondono alle query generando dei report, con cui segnalano al multicast router tutti gli host group a

NETTUNO – Network per l’Università ovunque Corso: Laurea a distanza in Ingegneria Informatica Insegnamento: Reti di Calcolatori II..

Anche router privi di host multicast ricevono i pacchetti multicast. Anche router privi di host multicast ricevono i

Anche router privi di host multicast ricevono i pacchetti multicast. Anche router privi di host multicast ricevono i

© 2003 Pier Luca Montessoro (si veda la nota a pagina 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei

Ne consegue che non il mittente, estraneo al contratto di subtrasporto, bensì il solo destinatario, quale terzo beneficiario del contratto stesso (di subtrasporto),