Programma del corso |
|
Introduzione: definizione di un sistema distribuito, obiettivi, tipologie di sistemi distribuiti.
|
|
Architetture: tipologie, middleware.
|
|
Processi: thread, virtualizzazione, paradigma client/server, migrazione del codice.
|
|
Comunicazione: nozioni di base, RPC, comunicazione message-oriented e stream-oerinted, multicast.
|
|
Naming: nomi, identificatori e indirizzi, flat naming, structured naming, attribute-based naming.
|
|
Sincronizzazione: orologi virtuali, mutua esclusione, algoritmi di elezione.
|
|
Consistenza e replicazione: modelli di consistenza (data-centric e client centric), gestione delle repliche, protocolli per la consistenza.
|
|
Fault tolerance: nozioni di base, comunicazione affidabile, commit distribuito, recovery.
|
|
File system distribuiti: architettura, sincronizzazione, consistenza e replicazione, fault-tolerance, sicurezza.
|
|
Coordinamento distribuito e reti peer-to-peer.
|
|
|
|