Distributed systems

A.A. 2017/2018
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Inglese
Obiettivi formativi
Scopo di questo corso è quello di presentare le tecnologie di base dei sistemi distribuiti. Il corso studierà le maggiori problematiche e scelte di progettazione di un sistema distribuito, i suoi principi architetturali (con particolare attenzione alla interconnesione di rete, alla comunicazione fra processi, e all'invocazione remota di procedure). Inoltre, verrano introdotti i metodi di base e gli algoritmi per il controllo della concorrenza.
Risultati apprendimento attesi
· Definizione e caratteristiche principali di un sistema distribuito e della sua architettura
· Protocolli di comunicazione fra processi, per la gestione dei nomi, per la sincronizzazione, per la consistenza e replicazione in ambiente distribuito
· Soluzioni per la resistenza ai guasti in ambiente distrib
Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre
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
Informazioni sul programma
· Definizione e caratteristiche principali di un sistema distribuito e della sua architettura
· Protocolli di comunicazione fra processi, per la gestione dei nomi, per la sincronizzazione, per la consistenza e replicazione in ambiente distribuito
· Soluzioni per la resistenza ai guasti in ambiente distribuito
Propedeuticità
· Algoritmi e strutture dati
· Basi di dati
· Reti di calcolatori
· Sistemi operativi I e II
Prerequisiti
The exam is a written test including both questions about the concepts studied during the course, and exercises similar to the ones seen during the course. The exam is aimed at assessing the knowledge and understanding of the topics of the course.
Materiale di riferimento
Andrew Tanenbaum, Maarten van Steen
"Distributed Systems, Principles and Paradigms"
Prentice-Hall, 2007 (2nd edition)
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Foresti Sara
Docente/i
Ricevimento:
su appuntamento
via Celoria, 18 - Milano (MI)