sistemi distribuiti soggetti a guasti - consenso
|
|
- Elisabetta Poletti
- 6 anni fa
- Visualizzazioni
Transcript
1 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 problemi in cui i processi partono con le loro opinioni (forse divergenti) e devono accordarsi su un opinione comune E un problema fondamentale: qualsiasi soluzione per mutua esclusione, leader election, comunicazione totalmente ordinata risolve il Consenso E stato provato che e impossibile risolvere il problema del Consenso in modo deterministico in sistemi asincroni in cui anche un solo processo puo guastarsi per crash (FLP result, 1985) E stato piu tardi dimostrato che puo essere risolto usando un failure detector di classe W (Toueg 1991) sistemi distributi soggetti a guasti-consenso 58 1
2 Consenso - definizione Insieme di processi con valori iniziali locali {0,1}. Tutti devono decidere lo stesso valore {0,1}, basandosi sui loro stati iniziali. alori iniziali p 0 p 1 p 2 p 3 p 4 p Algoritmo di Consenso alori decisi Nota 1: esistono stati iniziali (dei processi) per i quali la decisione è 0 e altri per i quali la decisione raggiunta è 1 (si evitano algoritmi di consenso banali in cui la decisione è sempre la stessa). Nota 2: l assunzione di valori {0,1} semplifica la discussione. sistemi distributi soggetti a guasti-consenso 59 Consenso - specifica Un qualsiasi processo chiama l algoritmo di consenso con un istruzione propose(v). Il valore deciso viene ritornato con un istruzione decide(v) Proprietà del Consenso Termination: ogni processo corretto prima o poi decide un valore (l istruzione di decide() viene eseguita almeno una volta da ogni processo corretto) alidity: se un processo (corretto o guasto) decide per un valore v, allora v è stato proposto da qualche processo (se un qualsiasi processo esegue una decide(v) allora un processo ha eseguito propose(v)) Integrity: nessun processo (corretto o guasto) decide 2 volte (l istruzione di decide() viene eseguita al piu una volta da ogni processo, corretto o guasto) Agreement: nessuna coppia di processi corretti decide per due valori diversi (se due processi corretti eseguono decide(v) e decide(v ) rispettivamente, allora v=v ) sistemi distributi soggetti a guasti-consenso 60 2
3 Algoritmo f+1 round Utilizza failure detector P e best-effort broadcast Indichiamo con f il massimo numero di processi che possono guastarsi (f è conosciuto a priori) Ogni processo P i mantiene un vettore i [1..n], che contiene l insieme di valori proposti che mano a mano P i raccoglie dagli altri processi. i [j] contiene il valore che proviene da P j. Inizialmente P i conosce solo il valore proposto da se stesso sistemi distributi soggetti a guasti-consenso 61 Algoritmo f+1 round L algoritmo funziona basandosi su round asincroni. E costituito da 2 fasi: Prima fase: costituita da f+1 round. In ogni round: 1. ogni processo manda a tutti gli altri processi valori di che non ha mai mandato prima. Quindi nel primo round manda solo il valore da lui proposto, mentre nei round successivi manda solo quei valori che ha visto per la prima volta nel round precedente 2. ogni processo riceve valori dagli altri processi. Aspetta un messaggio da tutti i processi che non sono nella lista dei sospettati FD P Seconda fase: inizia dopo f+1 round, ogni processo decide il primo valore non null presente nel vettore (funzione deterministica applicata da tutti) sistemi distributi soggetti a guasti-consenso 62 3
4 Algoritmo f+1 round when init do i := [null, null,... null]; alive:={p1,p2, PN}; ack[1, 2,f+1]:= [,,... ]; r i :=0; propose(v) i [i]:=v; r i :=1; Δ i := i bebroadcast (m=(r i, Δ i )); Δ i [i]:=null; when alive ack[r i ] do if r i :=f+1 then decide(prima entry i not null) else r i :=r i +1 bebroadcast (m=(r i, Δ i )) Δ i :=[null, null..., null] when bedeliver(m=(r j, Δ j ), Pj) do for k=1 to n do if (Δ j [k] null i [k]=null) then i [k] := Δ i [k]:= Δj[k]; ack[r i ]:=ack[r i ] {Pj} when FD P change by including Pj do alive:=alive \ {Pj} sistemi distributi soggetti a guasti-consenso 63 Algoritmo f+1 round - esempio r = 1 Ipotesi: f=1, quindi numero di round =2 P1 0 r = 1 r = 2 Per le caratteristiche del FD P: Il processo non corretto P1 sarà alla fine sospettato sia da P2 che da P3 I processi corretti P2 e P3 non vengono mai sospettati P Δ r = 1 r = 2 P3 1 Δ Il processo guasto P1 entra nella lista dei sospettati FD sistemi distributi soggetti a guasti-consenso 64 4
5 Algoritmo arbitrary round L algoritmo che abbiamo appena visto finisce sempre in f+1 round, anche in run in cui non avviene nessuno crash. In tali run il set di valori nel vettore e uguale per tutti alla fine del primo round, il vettore Δ viene inviato nel second round dal processo Pi con i valori proposti dagli altri processi. Quindi viene inviato in tutti i round successivi, dal 3 a f, completamente vuoto. Ma allora perche arriviamo fino al round f+1? Se un t<f crash avvengono al round f+1 cosa succede? In realta non c è bisogno di arrivare al round f+1, ma nel caso in esame cio ci assicura che ci sono stati almeno due round consecutivi per cui il set di processi che aveva iniziato il round è lo stesso del set che lo ha finito. Il loro set di valori è consistente, quindi i processi corretti hanno una visione comune. Se ciò non fosse perchè un processo Pk ha iniziato il round ma non l ha finito (causa crash) allora potrebbe esserci un inconsistenza nel sistema dovuto al valore di Pk che è arrivato solo ad una parte dei processi L algoritmo che segue lavora non conoscendo il numero massimo di processi guasti ed usa una nuova condizione di decisione non è piu basata sul numero di rounds, ma si basa sul verificare che il set di processi che hanno iniziato il round sia lo stesso di quelli che lo finiscono sistemi distributi soggetti a guasti-consenso 65 Algoritmo arbitrary round propose(3) propose(5) decide propose(8) propose(7) decide(3) decide(3) Il processo P1 fa crash nel primo round dopo aver inviato la sua proposta. Solo P2 vede questa proposta. Nessun altro processo fa crash. Quindi P2 vede la proposta di tutti e decide alla fine del primo round. Nello stesso round P3 e P4 invece rilevano il guasto di P1 e non possono decidere perchè il set di processi che ha iniziato il round non è lo stesso set che ha finito il round. Quindi P3 e P4 avanzano nel secondo round. Poiché P2 ha deciso, manderà il valore deciso con un best-effort broadcast, quando la decisione verrà consegnata allora anche P3 e P4 decideranno per il valore 3. sistemi distributi soggetti a guasti-consenso 66 5
6 Algoritmo arbitrary round when init do i := [null, null,... null]; alive:={p1,p2, PN}; ack[0,1, 2,n]:= [,,... ]; r i :=0; decided:=false; propose(v) ack[0]:= {P1,P2, PN} i [i]:=v; r i :=1; bebroadcast(m=( propose,r i, i )); when bedeliver(m=( propose,r j, j ),Pj) do for k=1 to n do if ( j [k] null _ i [k]=null) then i [k] := i [k]; ack[r i ]:=ack[r i ] {Pj} when alive ack[r i ] do if (ack[r i -1]=ack[r i ])and not decided then decide(v=1 entry i not null) decided:=true bebroadcast(m=( decide,v)) else r i :=r i +1 bebroadcast(m=( propose,r i, i )) when bedeliver(m=( decide, v), Pj) do if not decided and Pj alive then decide(v) decided:=true bebroadcast(m=( decide,v)) when FD P change by including Pj do alive:=alive \ {Pj} sistemi distributi soggetti a guasti-consenso 67 Esercizio - Consenso 1. Considerate la seguente specifica, chiamata uniform consensus, uguale a quella del consenso tranne che per la proprietà di agreement che qui è chiamata uniform agreement: Uniform agreement: nessuna coppia di processi decide due valori diversi. Spiegare perché l algoritmo arbitrary round non assicura questa proprietà. 2. Considerate l algoritmo arbitrary round e rispondete alle seguenti domande: 1. Quanti communication step (in questo caso quanti round) vengono eseguiti e quanti messaggi vengono scambiati nel caso non vi siano guasti? 2. Quanti communication step vengono eseguti nel caso peggiore? Qual è il caso peggiore? sistemi distributi soggetti a guasti-consenso 68 6
Soluzione: (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
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
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
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
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
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
DettagliAlgoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
DettagliFondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.
Fondamenti di Informatica Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. 006-007 Definizione di Algoritmo Def.: Per Algoritmo si intende un elenco di istruzioni che specificano una serie
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
Dettagli11.4 Chiusura transitiva
6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)
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
DettagliSEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)
SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a
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
DettagliIndice. 1 Introduzione 2. 2 Algoritmo di compressione LZ78 3
Algoritmi e Strutture Dati 2 e Aneno Acc. 1999/2000 PROF. ALFREDO DE SANTIS Metodo di Compressione LZ78 a cura di Maria Grazia Calabrò z 24 Luglio 2000 Indice 1 Introduzione 2 2 Algoritmo di compressione
DettagliAutoma a Stati Finiti (ASF)
Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare
DettagliQUICKSORT. Basato sul paradigma divide-et-impera (come MERGE-SORT)
QUICKSORT Basato sul paradigma divide-et-impera (come MERGE-SORT) Divide: stabilisce un valore di q tale da dividere l array A[p.. r] in due sottoarray non vuoti A[p.. q] e A[q+1.. r], dove ogni elemento
DettagliOrdinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita
Lezione 11 Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Ordinamento degli eventi Un sistema monoprocessore Unico clock Unica memoria Ordinamento degli eventi Mutua esclusione Deadlock
DettagliEsercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
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
DettagliADT Dizionario. Come nella Mappa: Diversamente dalla Mappa:
Come nella Mappa: un Dizionario è un contenitore di elementi del tipo (k,v) dove k è la chiave e v è il suo corrispondente valore. ogni elemento (k,v) viene detto entrata (entry) del Dizionario. chiavi
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
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
DettagliNote per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
DettagliNote su quicksort per ASD 2010-11 (DRAFT)
Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea
DettagliOrdinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
DettagliUNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Algoritmi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Algoritmi Algoritmi classici Alcuni problemi si presentano con elevata frequenza e sono stati ampiamente studiati Ricerca di un elemento in un vettore
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
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
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
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
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
DettagliSecondo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Secondo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini luca@chiodini.org - l.chiodini@campus.unimib.it 15 marzo 2016 Programma 1. Lettura di un problema tratto dalle
DettagliIl tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
DettagliComplementi ed Esercizi di Informatica Teorica II
Complementi ed Esercizi di Informatica Teorica II Vincenzo Bonifaci 21 maggio 2008 4 Problemi di ottimizzazione: il Bin Packing Il problema bin packing è il seguente: dato un insieme di n oggetti di dimensioni
DettagliDiagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
DettagliAlgoritmi 2 - Dr. Simone Faro - Esercizi sulle Tabelle Hash 1
Algoritmi 2 - Dr. Simone Faro - Esercizi sulle Tabelle Hash 1 1. Supponete di effettuare una ricerca in una lista concatenata di lunghezza n, dove ogni elemento contiene una chiave k ed un valore hash
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliSincronizzazione e coordinamento nel distribuito
Sincronizzazione e coordinamento nel distribuito Sincronizzazione in sistemi centralizzati uso di primitive basate implicitamente sull esistenza della memoria condivisa Sincronizzazione in sistemi distribuiti
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa
DettagliPermutazioni. 1 Introduzione
Permutazioni 1 Introduzione Una permutazione su un insieme di n elementi (di solito {1, 2,...,n}) è una funzione biiettiva dall insieme in sé. In parole povere, è una regola che a ogni elemento dell insieme,
DettagliIndice dei Contenuti
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
DettagliLa mutua esclusione (dai sistemi concorrenti ai sistemi distribuiti) mutua esclusione
La (dai sistemi concorrenti ai sistemi distribuiti) Mutua esclusione e sistemi concorrenti La nasce nei sistemi concorrenti abbiamo n processi che vogliono accedere ad una risorsa condivisa ogni processo
DettagliNote per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
DettagliProblemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)
Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come
DettagliProblemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come
Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo
DettagliLa principale modalità di calcolo è l applicazione di funzioni
1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un
Dettagli22/05/2013. Indice dei Contenuti. Global State (1) Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano
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
DettagliNell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:
Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi
DettagliMacchine sequenziali. Automa a Stati Finiti (ASF)
Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso
DettagliCodice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
DettagliInversa di una matrice
Geometria Lingotto. LeLing: La matrice inversa. Ārgomenti svolti: Inversa di una matrice. Unicita e calcolo della inversa. La inversa di una matrice. Il gruppo delle matrici invertibili. Ēsercizi consigliati:
DettagliPROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
DettagliAlgoritmi e Strutture Dati Geometria Computazionale. Daniele Loiacono
Algoritmi e Strutture Dati Geometria Computazionale Riferimenti 2 T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Introduction to Algorithms, Second Edition Queste trasparenze sono disponibili su http://dei.polimi.it/upload/loiacono
DettagliLinguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
DettagliLABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi
LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un
DettagliLaboratorio di Python
Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di
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
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
Dettagli8. IP: Instradamento dei datagrammi
8. IP: Instradamento dei datagrammi 8.1. Introduzione L'instradamento è la terza funzione fondamentale di un servizio di comunicazione di livello rete 8.2. L'instradamento in una internet Instradamento
DettagliAppunti lezione Capitolo 14 Greedy
Appunti lezione Capitolo 14 Greedy Alberto Montresor 21 Novembre, 2016 1 Domanda: dimostrare che S[i, j] = con i j Nel problema della selezione delle attività, il sottoinsieme S[i, j] è definito nel modo
DettagliAzioni atomiche. Definizioni. Proprietà
Azioni atomiche Definizioni Azione atomica: strumento di alto livello per strutturare programmi concorrenti e/o distribuiti, tolleranti a vari tipi di malfunzionamenti; o Realizzata con strumenti linguistici
DettagliEsercizi di riepilogo
Esercizi di riepilogo Es1: Scommesse al casinò Tizio e Caio si alternano al tavolo di un casinò. Tizio gioca negli istanti di tempo dispari, mentre Caio in quelli pari Ad ogni istante di tempo, il guadagno
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto
DettagliMonitor. Le procedure entry sono le sole operazioni che possono essere utilizzate dai processi per accedere alle variabili comuni.
Monitor Costrutto sintattico che associa un insieme di procedure ad una struttura dati comune a più processi. Il compilatore può verificare che esse siano le sole operazioni permesse su quella struttura.
DettagliProblemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
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
DettagliPROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE
PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un
DettagliSommario della lezione
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione
DettagliEsempio: rappresentare gli insiemi
Esempio: rappresentare gli insiemi Problema: rappresentare gli insiemi Vedremo che la scelta della rappresentazione per implementarli non è così ovvia come era stato per i numeri razionali In realtà ci
DettagliUNIVERSITÀ di ROMA TOR VERGATA
UNIVERSITÀ di ROMA TOR VERGATA Corso di Statistica, anno 00- P.Baldi Lista di esercizi. Corso di Laurea in Biotecnologie Esercizio Si sa che in una schedina del totocalcio i tre simboli, X, compaiono con
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
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno UD 3.1b: Costrutti di un Algoritmo Dispense 1.2 I Costrutti di base 13 apr 2010
DettagliDivide et impera su alberi
Divide et impera su alberi Caso base: peru = null o una foglia Decomposizione: riformula il problema per i sottoalberi radicati nei figli di u. Ricombinazione: ottieniilrisultatoconricombina 1 Decomponibile(u):
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. Pagina 1 di 5
Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni
DettagliInformatica e Bioinformatica: Algoritmi
Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione
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
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliINIT: for i = 0 to M-1 set(p[i], 0); for i = 0 to M-1 set(a[i], 0);
Esercizio Descrivere la tecnica di gestione della memoria basata su paginazione (non e richiesta la descrizione della tecnica si memoria virtuale). Inoltre, data un architettura a 64 bit di indirizzamento
DettagliCorso di Crittografia Prof. Dario Catalano. Advanced Encryption Standard
Corso di Crittografia Prof. Dario Catalano Advanced Encryption Standard Perche un nuovo standard? n Quando si è deciso di sostituire DES, questo era ancora sicuro. n Sorge naturale la questione del perche
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliIntelligenza Artificiale. Risoluzione dei Problemi
Intelligenza Artificiale Risoluzione dei Problemi Strategie non-informate: principali 1. breadth-first; 2. depth-first; 3. depth-first a profondità limitata; 4. ad approfondimento iterativo. Ricerca in
DettagliIstruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.
Istruzioni condizionali Istruzioni condizionali Statistica computazionale Carla Rampichini a.a. 2008/09 Subsetting I I espressione; I-THEN-ELSE I espress THEN istr; [ELSE istr;] DO WHILE DO UNTIL I-THEN-
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:. ;
Dettagli6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale
45 6.6 Regioni Critiche Condizionali 6.7 Monitor Costrutti linguistici inventati per evitare i problemi di programmazione che facilmente si fanno con i semafori Attenzione con i thread: in tale ambiente
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliModelli di 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 Modelli di Sistemi Distribuiti
DettagliEfficienza: esempi. Nella lezione precedente. Fondamenti di Informatica. Ferdinando Cicalese. ! Qualche problema computazionale
Efficienza: esempi Fondamenti di Informatica Ferdinando Cicalese Nella lezione precedente! Qualche problema computazionale " Trova min " Selection sort! Pseudocodice per descrivere algoritmi " Variabili
DettagliProgetto e analisi di algoritmi
Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento
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,
DettagliRichiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.
Richiami di Matematica 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Insiemi Definizioni di base Dato un insieme A: x A: elemento x appartenente
Dettagli5. Applicazione ai dati sperimentali, un modello di previsione delle temperature
5. Applicazione ai dati sperimentali, un modello di previsione delle temperature 5.1 Ricostruzione dello spazio delle fasi L utilizzo del teorema di embedding per ricostruire lo spazio delle fasi relativo
DettagliUNIVERSITÀ di ROMA TOR VERGATA
UNIVERSITÀ di ROMA TOR VERGATA Corso di Laurea Magistrale in Scienze della Nutrizione Umana Corso di Statistica Medica, anno 05-6 P.Baldi Lista di esercizi, 8 gennaio 06. Esercizio Si sa che in una schedina
Dettaglida chi proviene un messaggio?
da chi proviene un messaggio? in un crittosistema simmetrico solo Alice e Bob conoscono la chiave se Bob riceve un messaggio di Alice e la decifratura del messaggio ha senso, il messaggio proviene certamente
DettagliTempo e spazio di calcolo
Tempo e spazio di calcolo Modelli di calcolo e metodologie di analisi F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04) In quale modo stimiamo il tempo di calcolo? Possiamo considerare
DettagliCorso di Automazione industriale
Corso di Automazione industriale Lezione 5 PLC - SFC Università degli Studi di Bergamo, Automazione Industriale, A.A. 2016/2017, A. L. Cologni 1 Storia Prima degli anni 60 il CONTROLLO SEQUENZIALE era
Dettagli