Il corso introduce gli studenti ai principi di base del calcolo distribuito, evidenziando tematiche e tecniche comuni. Al termine del corso, gli studenti apprenderanno e saranno in grado di utilizzare le principali tecniche soggiacenti alla progettazione di sistemi distribuiti e, relative, in particolare, alla comunicazione, al coordinamento, alla tolleranza ai guasti, alla localita', alla rottura della simmetria, alla sincronizzazione e all'incertezza.
Nicola Santoro. Design and Analysis of Distributed Algorithms. Wiley, 2007
METODI DIDATTICI
Obiettivi Formativi
Conoscenze: il corso ha come scopo principale quello di introdurre gli studenti alla progettazione e analisi di algoritmi per sistemi di calcolo distribuito, focalizzandosi sulla natura e sulla struttura di base di questi sistemi, identificando principi e tecniche generali e ignorando i dettagli specifici di un particolare sistema.
Competenze acquisite: le competenze attese per lo studente sono quelle di progettare e analizzare un algoritmo per sistemi di calcolo distribuiti, sapendone provare la correttezza e verificarne l'efficienza.
Capacità acquisite (al termine del corso): gli studenti saranno in grado di progettare e analizzare algoritmi per sistemi di calcolo distribuiti.
Metodi Didattici
Numero di ore per studio personale e altre attività formative di tipo individuale: 102
Numero di ore relative alle attività in aula: 48
Altre Informazioni
Frequenza delle lezioni ed esercitazioni: raccomandata
Strumenti a supporto della didattica: http://e-l.unifi.it
Orario di ricevimento: mercoledì 14:30-16:00, oppure su appuntamento.
Viale Morgagni, 65 - 50134 Firenze
Tel.: 055 2751497
Fax: 055 4796516
E-mail: pierluigi.crescenzi@unifi.it
Programma del corso
Ambienti di calcolo distribuito. Problemi e protocolli di base. Elezione di un leader. Smistamento di messaggi e cammini minimi. Operazioni su insiemi distribuiti. Calcolo sincrono. Tolleranza ai guasti.