Consenso distribuito
|
|
- Leo Marchi
- 5 anni fa
- Visualizzazioni
Transcript
1 Consenso distribuito Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni
2 Il problema del consenso Un gruppo di processi devono mettersi d accordo su un valore (es. commit/abort di una transazione). E l astrazione di una classe di problemi in cui i processi partono con le loro opinioni (forse divergenti) e devono accordarsi su un opinione comune. È un problema fondamentale. Siamo interessati a studiare algoritmi e modelli minimali per risolvere questo problema in presenza di guasti. 2
3 Il problema del consenso Fisher, Lynch e Patterson hanno provato nel 1985 che è impossibile risolvere il problema del Consenso in modo deterministico in sistemi asincroni in cui anche un solo processo può guastarsi per crash Michael J Fischer, Nancy A. Lynch and Michael S. Paterson, Impossibility of distributed consensus with one faulty process. Journal of the ACM, Vol. 32, No. 2, April
4 Il problema del consenso Definizione del problema: Insieme di processi distribuiti con valori iniziali {0,1}. Ogni processo propone un valore. Tutti devono decidere lo stesso valore {0,1}. Il valore deciso deve essere tra quelli proposti. P1 P2 P3 P4 P5 P6 P7 Valori iniziali Consenso P1 P2 P3 P4 P5 P6 P7 Valori iniziali
5 Il problema del consenso Specifica del Consenso: <c, Propose v> utilizzabile per proporre il valore v <c, Decide v> notifica il processo che è stato deciso il valore v Il consenso gode delle seguenti proprietà: Termination: ogni processo corretto prima o poi decide un valore. Validity: se un processo decide v, allora v è stato proposto da qualche processo. Integrity: nessun processo decide due volte. Agreement: due processi corretti non decidono mai due valori diversi. 5
6 Flooding-based consensus Il primo algoritmo risolve il problema del consenso usando una semplice strategia: ogni processo propone un valore ogni processo raccoglie i valori ricevuti dagli altri e inoltra questo insieme a tutti ad ogni round i processi attendono di aver visto le proposte di tutti prima di decidere la decisione viene presa applicando una funzione deterministica sull insieme dei valori proposti ogni processo che decide avverte tutti gli altri 6
7 Flooding-based consensus Il problema più complesso è far si che tutti i processi concordino sull insieme dei valori proposti. Utilizza: Best Effort Broadcast Perfect Failure Detector 7
8 Flooding-based consensus upon event <c, Init> do for i=1 to N do receivedfrom[i] = ; proposals[i] = ; receivedfrom[0] = ; round = 1; decision = ; correct = ; upon event <P, Crash Pj> do correct = correct \ {Pj}; upon event <c, Propose v> do proposals[1] = proposals[1] {v}; trigger <beb, Broadcast [PROPOSAL, 1, proposals]>; upon event <beb, Deliver Pj, [PROPOSAL, r, ps]> do receivedfrom[r] = receivedfrom[r] {Pj}; proposals[r] = proposals[r] ps; 8
9 Flooding-based consensus upon event correct receivedfrom[round] decision = do if receivedfrom[round] = receivedfrom[round - 1] then decision = min(proposals[round]); trigger <beb, Broadcast [DECIDED, decision]>; trigger <c, Decide decision>; else round = round + 1; trigger <beb, Broadcast [PROPOSAL, round, proposals[round- 1]]>; upon event <beb, Deliver Pj, [DECIDED, v] > do if Pj correct decision = then decision = v; trigger <beb, Broadcast [DECIDED, decision]>; trigger <c, Decide decision>; 9
10 Flooding-based consensus Esempio: P 1 P 2 P 3 P 4 <c,%propose% %x> <c,%propose% %y> <c,%propose% %y> <c,%propose% %z> <beb,%deliver% %P1,%[Proposal,%{x}]> <beb,%deliver% %P2,%[Proposal,%{y}]> <beb,%deliver% %P3,%[Proposal,%{y}]> <beb,%deliver% %P4,%[Proposal,%{z}]> <c,%decide% %x> <beb,%deliver% %P2,%[Proposal,%{y}]> <beb,%deliver% %P3,%[Proposal,%{y}]> <beb,%deliver% %P4,%[Proposal,%{z}]> <beb,%deliver% %P2,%[Proposal,%{y}]> <beb,%deliver% %P3,%[Proposal,%{y}]> <beb,%deliver% %P4,%[Proposal,%{z}]> <beb,%deliver% %P2,%[Decided,%x]> <c,%decide% %x> <beb,%deliver% %P2,%[Decided,%x]> <c,%decide% %x> ROUND%1 ROUND%2 10
11 Flooding-based consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: ogni processo decide in al più N round (caso in cui N-1 processi si guastano). Agreement: i processi decidono su un insieme di proposte utilizzando una funzione deterministica. L agreement può essere provato ragionando su: il caso in cui un processo vede per due round lo stesso set di processi e decide; il caso in cui un processo decide perché vede la decisione di un processo che si guasta. 11
12 Hierarchical consensus L algoritmo visto usa un enorme numero di messaggi per raggiungere il consenso. Sfruttando un ordinamento precostituito tra i processi è possibile migliorare le prestazioni in alcuni casi comuni Utilizza: Best Effort Broadcast Perfect Failure Detector 12
13 Hierarchical consensus upon event <c, Init> do detectedranks = ; proposal = ; proposer = 0; round = 1; delivered = false N ; broadcast = false; upon event <P, Crash Pj> do detectedranks = detectedranks {rank(pj)}; upon event <c, Propose v> do if proposal = then proposal = v; 13
14 Hierarchical consensus upon event round = rank(self) proposal broadcast = false do broadcast = true; trigger <beb, Broadcast [DECIDED, proposal]>; trigger <c, Decide proposal>; upon event round detectedranks delivered[round] = true do round = round + 1; upon event <beb, Deliver Pj, [DECIDED, v]> do r = rank(pj); if r < rank(self) r > proposer then proposal = v; proposer = r; delivered[r] = true; 14
15 Hierarchical consensus Esempio: P 1 P 2 P 3 P 4 <c,$propose$ $x> <c,$decide$ $x> <c,$propose$ $y> <c,$propose$ $y> <c,$propose$ $z> <beb,$deliver$ $P1,$[Decided,$x]> <c,$decide$ $x> <beb,$deliver$ $P2,$[Decided,$x]> <beb,$deliver$ $P1,$[Decided,$x]> <beb,$deliver$ $P1,$[Decided,$x]> <c,$decide$ $x> <beb,$deliver$ $P2,$[Decided,$x]> <beb,$deliver$ $P3,$[Decided,$x]> <c,$decide$ $x> ROUND$1 ROUND$2 ROUND$3 ROUND$4 15
16 Hierarchical consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: segue dalla proprietà di strong completeness del FD P. Agreement: supponiamo p e q due processi corretti che decidono valori diversi. Supponiamo rank(p)=i < j=rank(q). q può decidere solo al round j>i ma per arrivarci deve essere vera una delle due: p si è guastato (impossibile perché corretto) q ha ricevuto DELIVERED da p In quest ultimo caso q non può decidere un valore diverso da p 16
17 Consenso uniforme Specifica del Consenso: Termination: ogni processo corretto prima o poi decide un valore. (come regolare) Validity: se un processo decide v, allora v è stato proposto da qualche processo. (come regolare) Integrity: nessun processo decide due volte. (come regolare) Uniform Agreement: due processi non decidono mai due valori diversi. 17
18 Flooding-based uniform consensus Nell algoritmo originale un processo decideva dopo aver osservato gli stessi set di proposte per due round successivi. Questo processo potrebbe decidere e guastarsi immediatamente, violando l uniformità. In questa variante ogni processo semplicemente aspetta il round N prima di decidere. 18
19 Flooding-based uniform consensus upon event <uc, Init> do receivedfrom = ; proposals = ; round = 1; decision = ; correct = ; upon event <P, Crash Pj> do correct = correct \ {Pj}; upon event <uc, Propose v> do proposals = proposals {v}; trigger <beb, Broadcast [PROPOSAL, 1, proposals]>; upon event <beb, Deliver Pj, [PROPOSAL, r, ps]> do if r==round then receivedfrom = receivedfrom {Pj}; proposals = proposals ps; 19
20 Flooding-based uniform consensus upon event correct receivedfrom decision = do if round == N then decision = min(proposals[round]); trigger <uc, Decide decision>; else round = round + 1; receivedfrom = ; trigger <beb, Broadcast [PROPOSAL, round, proposals]>; 20
21 Flooding-based uniform consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: tutti i processi corretti terminano l esecuzione decidendo al round N. Agreement: i processi che raggiungono il round N hanno lo stesso set proposals, e quindi decidono lo stesso valore. 21
22 Hierarchical uniform consensus In questo caso l algoritmo mantiene la stessa struttura. Ad ogni round abbiamo due passi: prima il leader propone il proprio valore a tutti quindi attende che tutti gli confermino la ricezione del suo valore Utilizza: Best Effort Broadcast Reliable Broadcast Perfect Link Perfect Failure Detector 22
23 Hierarchical uniform consensus upon event <uc, Init> do detectedranks = ; ackranks = ; proposal = ; decision = ; round = 1; proposed = N ; upon event <P, Crash Pj> do detectedranks = detectedranks {rank(pj)}; upon event <uc, Propose v> do if proposal = then proposal = v; upon event round = rank(self) proposal decision = do trigger <beb, Broadcast [PROPOSAL, proposal]>; 23
24 Hierarchical uniform consensus upon event <beb, Deliver Pj, [PROPOSAL, v]> do proposed[rank(pj)] = v; if rank(pj) round then trigger <pl, Send Pj, [ACK]>; upon event round detectedranks do if proposed[round] then proposal = proposed[round]; round = round + 1; upon event <pl, Deliver Pj, [ACK]> do ackranks = ackranks {rank(pj)}; upon event detectedranks ackranks = do trigger <rb, Broadcast [DECIDED, proposal]>; upon event <rb, Deliver Pj, [DECIDED, v]> do if proposal = then decision = v; trigger <uc, Decide decision>; 24
25 Hierarchical uniform consensus Correttezza: Validity e integrity: conseguenza delle proprietà dei canali di comunicazione sottostanti (pl). Termination: se un processo corretto decide lo fa dopo aver eseguito <rb, Deliver>, quindi, per la proprietà di agreement di rb, tutti i processi corretti prima o poi decidono. supponiamo p il processo corretto con rank più piccolo tutti i processi corretti segnalano il guasto di qualsiasi processo i con rank(i)<rank(p) Prima o poi tutti raggiungono il round rank(p) e non procedono a round successivi Questo round termina correttamente con la decisione di p. 25
26 Hierarchical uniform consensus Correttezza: Agreement: Assumiamo che esistano due processi che decidono valori differenti. Questo può accadere solo se due processi mandano in rbbroadcast due valori differenti. Supponiamo questi siano p e q, con rank(q)>rank(p), che eseguono rb-broadcast di due valori v e v Causa strong accuracy del FD, q deve aver adottato il valore v prima di raggiungere il round rank(q) Se questo non fosse avvenuto p non avrebbe potuto inviare v con rbbroadcast. Quindi deve essere necessariamente v=v 26
27 Rotating coordinator consensus Vediamo ora un algoritmo che realizza consenso uniforma in un sistema parzialmente sincrono; L algoritmo procede per round e ad ogni round esiste un singolo leader Pi è il leader nei round i, i+n, i+2n,... Utilizza: Eventually Perfect FD Best effort broadcast Reliable broadcast 27
28 Rotating coordinator consensus Ad ogni round: ogni processo non leader (witness) propone al leader un valore con il proprio timestamp (round) il leader raccoglie le proposte e sceglie la proposta con timestamp più alto il leader propone a tutti i witness il valore scelto quando un processo witness riceve la proposta del leader la accetta rispondendo con un ACK se sospetta il leader di guasto la rifiuta rispondendo con un NACK e passa al round successivo se il leader riceve una maggioranza di ACK decide il valore che aveva proposto se il leader riceve anche un solo NACK passa al round successivo 28
29 Rotating coordinator consensus upon event <uc, Init> do round = 1; estimate[]=ack[]=false; proposed[]= proposal = decided = ; suspected=estimate- set[]=ack- set[]=nack- set[]= ; upon event <uc, Propose v> do proposal = (v,0); upon event proposal estimate[round]=false do estimate[round] = true; trigger <pl, Send leader(round), [ESTIMATE, round, proposal]>; upon event <pl, Deliver Pj, [ESTIMATE, r, e]> do estimate- set[r] = estimate- set[r] {e}; upon event leader(round)=self estimate- set[round] >N/2 do proposal = highest(estimate- set[round]); trigger <beb, Broadcast [PROPOSE, round, proposal]>; 29
30 Rotating coordinator consensus upon event <beb, Deliver Pj, [PROPOSE, r, v]> do proposed[r] = v; upon event proposed[round] ack[round]=false do proposal = (proposed[round], round); ack[round] = true; trigger <pl, Send leader(round), [ACK, round]>; round := round + 1; upon event <pl, Deliver Pj, [ACK, r]> do ack- set[r] = ack- set[r] {Pj}; upon event leader(round) suspected ack[round]=false do ack[round] = true; trigger <pl, Send leader(round), [NACK, round]>; round = round + 1; upon event <pl, Deliver Pj, [NACK, r]> do nack- set[r] = nack- set[r] {Pj}; 30
31 Rotating coordinator consensus upon event leader(round)=self nack- set[round] do round := round + 1; upon event leader(round)=self ack- set[round] >N/2 do trigger <rb, Broadcast [DECIDE, proposal]>; upon event <rb, Deliver Pj, [DECIDED, v]> decided= do decided = v; trigger <uc, Decide v>; upon event < P, suspect Pj> do suspected = suspected {Pj}; upon event < P, restore Pj> do suspected = suspected \ {Pj}; 31
Broadcast. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. domenica 1 aprile 12
Broadcast Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Best effort broadcast Interfaccia: ; ; Proprietà: Best
Dettaglisistemi distribuiti soggetti a guasti - consenso
sistemi distribuiti soggetti a guasti - consenso Problema del Consenso Il gruppo di processi devono mettersi d accordo su un valore (es. commit/abort di una transazione). E l astrazione di una classe di
DettagliSoluzione: (basata su round sincroni) Soluzione: (basata su processo leader) upon event <tob, Init> do tosend = ; todeliver = ; starttimer(δ + ε);
Esercizio 1 Si consideri un sistema distribuito composto da N processi ciascuno dei quali è identificato attraverso un intero univoco. Supponendo che il sistema sia sincrono, che i processi non si guastino
DettagliComunicazioni ordinate
Comunicazioni ordinate Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 211-212 Leonardo Querzoni Comunicazioni ordinate Abbiamo già visto come sia possibile costruire sopra ad un perfect
DettagliProblemi e Algoritmi distribuiti
Problemi e Algoritmi distribuiti Problemi nei sistemi distribuiti Problemi di coordinamento: Mutua esclusione Leader Election Consenso Problemi di comunicazione ordinata: Comunicazione FIFO Comunicazione
DettagliUniversità degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Problemidiconsenso neisistemidistribuiti
DettagliSistemi Distribuiti soggetti a Guasti
Sistemi Distribuiti soggetti a Guasti Overview i guasti... Fino ad ora abbiamo assunto un modello di sistema senza guasti, abbiamo analizzato l effetto della concorrenza sugli algoritmi distribuiti (mutua
DettagliModelli di sistemi distribuiti
Modelli di sistemi distribuiti Sistema distribuito sincrono Un sistema distribuito viene detto sincrono quando è possibile stabilire sia un limite inferiore sia un limite superiore a il tempo di esecuzione
DettagliPrincipi di progettazione di sistemi distribuiti
Principi di progettazione di sistemi distribuiti i modelli sincrono ed asincrono il problema dell agreement i guasti e loro rilevazione Sistema distribuito sincrono Un sistema distribuito viene detto sincrono
DettagliLe comunicazioni ordinate
Le comunicazioni ordinate Comunicazioni Ordinate E importante (e utile definire delle primitive di comunicazione che diano qualche garanzia sull ordine di consegna dei messaggi inviati all interno di un
DettagliElezione di un leader in una rete ad anello
Elezione di un leader in una rete ad anello Corso di Algoritmi Distribuiti Prof. Roberto De Prisco Lezione n a cura di Rosanna Cassino e Sergio Di Martino Introduzione In questa lezione viene presentato
DettagliUniversità degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Comunicazioni di gruppo Sommario
DettagliComunicazioni di gruppo
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Comunicazioni di gruppo Sommario
DettagliSistemi distribuiti su larga scala
Sistemi distribuiti su larga scala Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Dove siamo arrivati Replicazione Attiva Replicazione Primary/Backup Atomic
DettagliMutua esclusione. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. mercoledì 29 febbraio 12
Mutua esclusione Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Accesso concorrente alle risorse Consideriamo un sistema in cui N processi vogliono accedere
DettagliDati e Algoritmi I (Pietracaprina) Esercizi sul Text Processing
Dati e Algoritmi I (Pietracaprina) Esercizi sul Text Processing Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T un testo di n caratteri e P un pattern di m n caratteri e si supponga che
DettagliApprofondimento di Sistemi Distribuiti. Autore: Lionello Marco matricola:
Approfondimento di Sistemi Distribuiti Autore: Lionello Marco matricola: 810079 15 Maggio 2006 ii Indice 1 Introduzione 1 2 Modelli di sistema e definizione del problema 3 2.1 Definizione del problema
DettagliNome Cognome N. di matricola (10 cifre) Riga Col
Nome Cognome N. di matricola (10 cifre) Riga Col UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2006/2007 CONCORRENZA - 15 Giugno 2007
DettagliArchitetture data-flow
Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni
DettagliSistemi Distribuiti Il Modello della Computazione Distribuita
Sistemi Distribuiti Il Modello della Computazione Distribuita Autori: Cecchini Gabriele De Sanctis Adriano Mastrogiuseppe Simoni Paolo Sperduti Daniele Sistemi Distribuiti Il Modello della Computazione
DettagliMiddleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti
Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti
DettagliSCD. Sincronizzazione in distribuito. Sistemi distribuiti: sincronizzazione. Stato del sistema 2. Stato del sistema 3. Stato del sistema 1
Stato del sistema 2 Sincronizzazione in distribuito Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Distributed snapshot Riflette uno stato
DettagliTeoria della Replicazione
Teoria della Replicazione Sistemi Distribuiti a.a. 2003/2004 Prof. Roberto Baldoni, Ing.. Alessia Milani milani@dis.uniroma1.it www.dis.uniroma1.it/~milani 1 Argomenti (1) Introduzione alla replicazione:
DettagliAlgoritmi distribuiti su reti sincrone. Introduzione alle reti sincrone
Lucia Pallottino. Sistemi Robotici Distribuiti - Versione del 18 Aprile 2012 194 Algoritmi distribuiti su reti sincrone Per questo capitolo si può fare riferimento al libro Distributed Algorithms di Nancy
DettagliModello a scambio di messaggi
Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente
DettagliDati e Algoritmi 1: A. Pietracaprina. Text Processing
Dati e Algoritmi 1: A. Pietracaprina Text Processing 1 Campi Applicativi text editing web searching computational biology (e.g., DNA analysis) vision... 2 Definizioni Stringa P P P[0]P[1]... P[m 1] (lunghezza
DettagliColloquio di informatica (5 crediti)
Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio
DettagliEsercitazioni 13 e 14
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazioni 13 e 14 Comunicazione tra processi (IPC) Meccanismo per la comunicazione
DettagliEsercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 10 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu May 10, 2016 Elementi fondamentali Un algoritmo non deterministico è un algoritmo che posto di fronte alla necessità di
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare
DettagliIl modello a scambio di messaggio
Il modello a scambio di messaggio Ciascun processo evolve in un proprio ambiente che non può essere modificato direttamente da altri processi. Quindi non esiste memoria condivisa e le risorse sono tutte
DettagliSCD. Sincronizzazione. Sistemi distribuiti: sincronizzazione. Stato del sistema 2. Stato del sistema 3. Stato del sistema 1. Distributed snapshot
Stato del sistema 2 Sincronizzazione Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Laurea Magistrale in Informatica, Università di Padova
DettagliCollezione di slides presentate al corso di ESD A. Fantechi
Collezione di slides presentate al corso di ESD A. Fantechi Programmazione difensiva Checkpointing in ambito distribuito Memoria stabile Two phase commit Paradosso dei generali bizantini Consenso Distribuito
DettagliStudio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,
DettagliCoordinamento e sincronizzazione
Coordinamento e sincronizzazione Tempo locale e globale Nei sistemi distribuiti non esiste un orologio fisico globale Algoritmi di sincronizzazione e di coordinamento Applicazioni: correttezza di sequenze
DettagliCapitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella
Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio
DettagliElementi di Informatica e Programmazione
Università degli Studi di Brescia Elementi di Informatica e Programmazione Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica
DettagliTolleranza ai Guasti nei Sistemi Distribuiti
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Tolleranza ai Guasti nei Sistemi Distribuiti Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2008/09 Dependability Per comprendere
DettagliNozioni di base (II Parte)
Nozioni di base (II Parte) 1 Ricorsione [GTG14, Par. 5.1-5.4 and 13.1] Algoritmo Ricorsivo: algoritmo che invoca se stesso (su istanze sempre più piccole) sfruttando la nozione di induzione. La soluzione
DettagliCorso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori (a.a. 2010/11) Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche
DettagliProblemi decidibili, semidecidibili, indecidibili
Problemi decidibili, semidecidibili, indecidibili (Paragrafo 3.5 delle dispense) Il problema di determinare se una formula A della logica proposizionale sia valida o no può essere risolto mediante un procedimento
DettagliNota Preliminare. Generalità (1/2) Generalità (2/2) Leader election con CSP. La presente dispensa è una rivisitazione di
Leader election con CSP Nota Preliminare La presente dispensa è una rivisitazione di Yucheng Fang, Huibiao Zhu, Huiwen Wang, Modeling and Verifying Leader Election Algorithm in CSP, Proc. of the 30th Int.l
DettagliVincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa
Vincenzo Gervasi, Laura Semini Ingegneria del Software Dipartimento di Informatica Università di Pisa Lezioni precedenti: Descrizione del dominio: modello statico Descrizione del dominio: modello dinamico
DettagliIntroduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
DettagliUniversità di Bologna
Università di Bologna Laurea Magistrale in Ingegneria Informatica Corso di Reti di Calcolatori M - A.A. 2009-10 Prof. Antonio Corradi Progetto RE.VE.N.GE. CORBA REliable and VErsatile News delivery support
DettagliUniversità degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Algoritmi di mutua esclusione
DettagliAlgoritmi di mutua esclusione nei sistemi distribuiti
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Algoritmi di mutua esclusione
DettagliCapitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella
Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2015/ Luglio 2016
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2015/2016 4 Luglio 2016 Testo Il database del sistema di gestione delle tessere fedeltà di un supermercato
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive
DettagliRETI DI CALCOLATORI Home Work ritardi e livello applicativo
RETI DI CALCOLATORI Home Work ritardi e livello applicativo Prima parte Q1. Supponiamo che un router A trasmetta un pacchetto su un collegamento con un router B, che la frequenza di trasmissione del collegamento
DettagliModellazione e verifica formale di algoritmi per la mutua esclusione in ambiente distribuito.
Copertina Modellazione e verifica formale di algoritmi per la mutua esclusione in ambiente distribuito. Corso: Metodi formali nell ingegneria del software Anno accademico 2006/2007 Docente: Tony Mancini
DettagliGlobal Virtual Time (GVT) e Approfondimenti sul Time Warp
Global Virtual Time (GVT) e Approfondimenti sul Time Warp Gabriele D Angelo gda@cs.unibo.it http://www.cs.unibo.it/~gdangelo Dipartimento di Scienze dell Informazione Università degli Studi di Bologna
DettagliEsercizi vari. Alberto Montresor. 19 Agosto, 2014
Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni
DettagliEfficienza: esempi. Fondamenti di Informatica. Ferdinando Cicalese. Nella lezione precedente. Pseudocodice per descrivere algoritmi
Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente Qualche problema computazionale Trova min Selection sort Pseudocodice per descrivere algoritmi Variabili Assegnamento
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/ Febbraio 2017
Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2016/2017 3 Febbraio 2017 Testo Il database del sistema di gestione delle tessere fedeltà di un
DettagliTecniche di prova per induzione
Aniello Murano Tecniche di prova per induzione 3 Lezione n. Parole chiave: Induzione Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Riassunto delle lezioni precedenti
DettagliUniversità degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale
Università degli Studi di Brescia INFORMATICA Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica e Industriale DIPARTIMENTO
DettagliUn problema di programmazione dei lavori
Un problema di programmazione dei lavori Un lavoro unitario è un lavoro che richiede esattamente una unità di tempo per essere eseguito. Dato un insieme S di lavori unitari, una programmazione per S è
DettagliModello a scambio di messaggi
Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;
DettagliSISTEMI DI ELABORAZIONE
SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2011/2012 Il progetto consiste nello sviluppo di un applicazione client/server. Client e server
DettagliUn algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
DettagliIl problema delle azioni
Il problema delle azioni Per studiare l andamento del mercato azionario bisogna seguire i prezzi delle azioni in un lasso di tempo abbastanza lungo, diciamo n giorni. Se si dispone dei prezzi di un azione
DettagliAlgoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort
Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non
DettagliModelli Architetturali. Astrazione del sistema - componenti e struttura - distribuzione delle funzionalità
Modelli di Sistemi Modelli concettuali di supporto allo studio dei sistemi distribuiti Modelli architetturali Descrizione ad alto livello della distribuzione delle funzionalità delle componenti e loro
DettagliOrdinamento causale e stati globali nei Sistemi Distribuiti. Moreno Marzolla
Ordinamento causale e stati globali nei Sistemi Distribuiti Moreno Marzolla E-mail: marzolla@dsi.unive.it Web: http://www.dsi.unive.it/~ marzolla Introduzione Supponiamo di avere una computazione distribuita
DettagliIl livello trasporto: tecniche di trasmissione affidabile dei dati
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche di trasmissione
DettagliSemantica Operazionale del linguaggio imperativo IMP
Aniello Murano Semantica Operazionale del linguaggio imperativo IMP 2 Lezione n. Parole chiave: Sem. Operazionale Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione
DettagliIngegneria del Software 18. Realizzazione casi d uso. Dipartimento di Informatica Università di Pisa A.A. 2014/15
Ingegneria del Software 18. Realizzazione casi d uso Dipartimento di Informatica Università di Pisa A.A. 2014/15 diagrammi di interazione Descrizione dinamica, che elenca i messaggi scambiati tra istanze
DettagliAlgoritmi e Strutture Dati. Capitolo 4 Ordinamento
Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un
DettagliAlgoritmi generali per PLI
Programmazione Lineare Intera: II Algoritmo Cutting Planes Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev.. ottobre Algoritmi generali per PLI Metodi esatti tradizionali (anni 6 oggi):
DettagliSe due computer sono sulla stessa rete Sappiamo come possono fare per scambiarsi datagram Usano gli indirizzi fisici
Prof. Roberto De Prisco TEORIA - Lezione 12 IP, instradamento dei datagram (Comer, Cap. 8) Università degli studi di Salerno Laurea e Diploma in Informatica Routing (instradamento) 2 Se due computer sono
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/ Giugno 2019
Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/2019 10 Giugno 2019 Testo Il database del sistema di gestione delle officine di una compagnia
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/ Luglio 2019
Cognome Matricola Nome Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2018/2019 1 Luglio 2019 Testo Il database del sistema di gestione delle officine di una compagnia
DettagliApprofondimenti sul ciclo while
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione In questa lezione... Mostriamo semplici esempi di uso dei cicli Ciascuno di
DettagliBasi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti.
Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti. Cognome Nome Matricola Domanda 1 (20%) Considerare un sistema distribuito su cui viene eseguita una
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
DettagliLogica per la Programmazione
Logica per la Programmazione Lezione 12 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione
DettagliIstruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliEsercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliLogica per la Programmazione
Logica per la Programmazione Lezione 15 Sistema di Dimostrazioni per le Triple di Hoare Comando Vuoto, Assegnamento, Sequenza, Condizionale A. Corradini e F. Bonchi Dip.to Informatica Logica per la Programmazione
DettagliImplementazione e analisi di un protocollo per la replicazione attiva
Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Tesi di Laurea in Ingegneria Informatica Dicembre, 2002 Implementazione e analisi di un protocollo per la replicazione attiva Stefano Cimmino
DettagliUniversità degli Studi di Roma Tor Vergata Facoltà di Ingegneria
Università degli Studi di oma Tor Vergata Facoltà di Ingegneria La mutua esclusione nasce nei sistemi concorrenti N processi vogliono accedere ad una risorsa condivisa Ogni processo vuole acquisire la
DettagliAlgoritmo di Dijkstra
Reti di alcolatori I Prof. Roberto anonico ipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione orso di Laurea in Ingegneria delle Telecomunicazioni orso di Laurea in Ingegneria dell
DettagliAvete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION
1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università
DettagliInformatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
DettagliOttimizzazione dei Sistemi Complessi
1 Giovedì 2 Marzo 2017 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Pseudo-code del metodo Fermi-Metropolis Input: x 0, 0, min, maxit k 0, x x 0, 0 while k maxit and min do k k + 1, x x
DettagliLABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Strumenti di specifica di protocolli e algoritmi di rete 1 of 44 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione
DettagliSommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?
Sommario Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi? Decisione vs ricerca! Se disponiamo di un efficiente algoritmo per risolvere
DettagliProgrammazione Matematica: VII La scomposizione di Dantzig Wolfe
Programmazione Matematica: VII La scomposizione di Dantzig Wolfe Daniele Vigo D.E.I.S. Università di Bologna dvigo@deis.unibo.it rev..0 Maggio 2004 Scomposizione di problemi Accade spesso che un problema
DettagliAlberi ed Alberi Binari di Ricerca
Alberi ed Alberi Binari di Ricerca Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell
Dettagli