Distributed systems

A.A. 2014/2015
Insegnamento per
6
Crediti massimi
48
Ore totali
Lingua
Inglese
Obiettivi formativi
The aim of this class is to present the basic distributed system technologies. The class discusses the main issues and design choices of a distributed system, the architectural principles, with a particular focus on interconnection networks, communication among processes, remote method invocation and remote procedure call mechanisms. In addition, basic methods and algorithms for controlling concurrency are introduced.

Struttura insegnamento e programma

Linea Crema
Edizione attiva
Responsabile
Lezioni: 48 ore
Docente: Foresti Sara
Programma
1. Introduzione
definizione di sistema distribuito, obiettivi (disponibilità delle risorse, trasparenza di distribuzione, openness, scalabilità); classificazione dei sistemi distribuiti (sistemi di computazione, sistemi informative, sistemi pervasivi).
2. Architettura dei sistemi distribuiti
architettura del sistema (centralizzata, decentralizzata, ibrida); approcci basati sulla presenza di un middleware(interceptors, middleware adattativi); modello basato sul feedback.
3. Processi
threads; virtualizzazione; clients; servers; migrazione del codice.
4. Comunicazione
concetti di base; Remote Procedure Call; Message Oriented Communication; Stream Oriented Communication; Multicast Communication.
5. Assegnamento e gestione dei nomi
concetti di base (nome, identificatore, indirizzo); sistemi di gestione dei nomi piatti, strutturati, e basati su attributi.
6. Sincronizzazione
sincronizzazione basata su orologi (orologi fisici, GPS); orologi logici (protocolli di Lamport e Vector Clocks); mutua esclusione (algoritmi centralizzati, decentralizzati, distribuiti e token ring); global node positioning; algoritmi di elezione di un coordinatore.
7. Consistenza e Replicazione
modelli basati sui dati (consistenza continua, ordinamento consistente); modelli basati sul client (eventual consistency, letture monotone, scritture monotone, read your writes, scritture seguono le letture); gestione delle replicazioni; protocolli per la consistenza (continuous consistency, primary-based, replicated-write, cache coherence).
8. Fault tolerance
concetti base (rottura, ridondanza); process resilience; comunicazione affidabile fra client e server; comunicazione affidabile all'interno di gruppi; protocolli per il commit distribuito; recovery.
Propedeuticità
· Algoritmi e strutture dati
· Basi di dati
· Reti di calcolatori
· Sistemi operativi I e II
Prerequisiti e modalità di esame
Prerequisiti
Nessuno

Esame
Scritto
Metodi didattici
Lezioni
Materiale didattico e bibliografia
Andrew Tanenbaum, Maarten van Steen
"Distributed Systems, Principles and Paradigms"
Prentice-Hall, 2007 (2nd edition)
Periodo
Secondo semestre
Periodo
Secondo semestre
Modalità di valutazione
Esame
Giudizio di valutazione
voto verbalizzato in trentesimi
Siti didattici
Docente/i
Ricevimento:
su appuntamento
via Celoria, 18 - Milano (MI)