Differenze tra le versioni di "Sistemi distribuiti"

Da WikiDsy.
(Diario del corso)
(Diario del corso)
Riga 34: Riga 34:
 
== Diario del corso ==
 
== Diario del corso ==
  
=== Lezione di mercoledì 8 marzo 2006 ===
+
=== Lezione di Mercoledì 8 marzo 2006 ===
 
* Introduzione
 
* Introduzione
 
* Definizione di "Sistema distribuito"
 
* Definizione di "Sistema distribuito"
Riga 42: Riga 42:
 
* Concetti software
 
* Concetti software
  
=== Lezione di mercoledì 15 marzo 2006 ===
+
=== Lezione di Mercoledì 15 marzo 2006 ===
 
* Paragone tra sistemi
 
* Paragone tra sistemi
 
* Esempio di Client
 
* Esempio di Client
Riga 58: Riga 58:
 
''Note dal docente: il 7 giugno ci sarà la prova finale; la prossima lezione sarà molto importante (algoritmi di sincronizzazione)!! ''
 
''Note dal docente: il 7 giugno ci sarà la prova finale; la prossima lezione sarà molto importante (algoritmi di sincronizzazione)!! ''
  
=== Lezione di mercoledì 22 marzo 2006 ===
+
=== Lezione di Mercoledì 22 marzo 2006 ===
  
 
* Sincronizzazione (capitolo 5 del Tanenbaum)
 
* Sincronizzazione (capitolo 5 del Tanenbaum)
Riga 77: Riga 77:
 
''Note dal docente: le prossime 5 lezioni saranno dedicate alla parte di laboratorio; di queste cinque, le prime tre si terranno in aula Alfa, le ultime due in aula Sigma.''
 
''Note dal docente: le prossime 5 lezioni saranno dedicate alla parte di laboratorio; di queste cinque, le prime tre si terranno in aula Alfa, le ultime due in aula Sigma.''
  
=== Lezione di mercoledì 29 marzo 2006 ===
+
=== Lezione di Mercoledì 29 marzo 2006 ===
 
* Elementi fondamentali delle reti TCP/IP
 
* Elementi fondamentali delle reti TCP/IP
 
* Il livello di trasporto: TCP e UDP
 
* Il livello di trasporto: TCP e UDP
Riga 83: Riga 83:
 
* Esempio e commento del codice per la comunicazione di un client e di un server in TCP usando le socket
 
* Esempio e commento del codice per la comunicazione di un client e di un server in TCP usando le socket
 
* Esempio e commento del codice per la comunicazione di un client e di un server in UDP usando le socket (concetto di datagramPacket)
 
* Esempio e commento del codice per la comunicazione di un client e di un server in UDP usando le socket (concetto di datagramPacket)
 +
 +
=== Lezione di Mercoledì 05 aprile 2006 ===
 +
* Server Concorrenti
 +
* Progettare un server concorrente
 +
* Thread in Java
 +
* Versione Multithread del TCP Server
 +
* Sincronizzazione
 +
** Metodi non sincronizzati
 +
** Metodi sincronizzati
 +
* Struttura di un server concorrente
 +
* Join(), Sleep(), Wait(), Notify()

Versione delle 11:16, 5 apr 2006

Informazioni generali

Docenti

Prof. Claudio Bettini
Dott. Sergio Mascetti (per la parte di laboratorio)

Orari delle lezioni

Mer 9.00 - 11.30 in aula Alfa (via Comelico)
(con pausa di circa 20 minuti)

Orario di ricevimento studenti

Mar 17.30 - 19.30
Stanza P121

Sito del corso

Pagina ufficiale del corso.

Materiale didattico

  • Testo: "Distributed Systems: Principles and Paradigms" - Andrew S. Tanenbaum & Martin Steen Van - Prentice Hall, 2002, ISBN 0-13-088893-1
  • I lucidi delle lezioni sono presenti sul sito ufficiale del corso. Per accedere al materiale è necessario avere username e password.

Modalità d'esame

Se si sceglie di sostenere il primo appello (quello a giugno) si potrà lavorare ad un progetto durante le ore di laboratorio che verrà valutato alla fine delle lezioni pratiche. Le lezioni di laboratorio si svolgeranno nei giorni: 5, 12, 19, 26 aprile, 3 e 10 maggio in aula Sigma (via Comelico). Successivamente, a giugno, si sosterrà un esame scritto (test a scelta multipla e domande a risposta aperta). Il voto sarà dato dalla media dei due voti ottenuti nelle due prove (verrà dato pari peso a pratica e teoria - 3 crediti per entrambe).

Se si decide di dare l'esame dopo giugno bisognerà sostenere un orale durante il quale si dovrà presentare anche il proprio progetto.

Il testo del progetto resta valido fino ad aprile 2007.

Diario del corso

Lezione di Mercoledì 8 marzo 2006

  • Introduzione
  • Definizione di "Sistema distribuito"
  • Trasparenza
  • Scalabilità
  • Concetti hardware
  • Concetti software

Lezione di Mercoledì 15 marzo 2006

  • Paragone tra sistemi
  • Esempio di Client
  • Esempio di Server
  • Architetture multitiered
  • Distribuzione verticale e orizzontale di un Web Server
  • Modello peer-to-peer
  • Livelli del modello OSI (breve ripasso)
  • Servizi di comunicazione middleware
  • Persistenza, mancanza di persistenza; sincronia, asincronia nella comunicazione
  • Socket
  • Remote Procedure Call
  • Remote Object Invocation

Note dal docente: il 7 giugno ci sarà la prova finale; la prossima lezione sarà molto importante (algoritmi di sincronizzazione)!!

Lezione di Mercoledì 22 marzo 2006

  • Sincronizzazione (capitolo 5 del Tanenbaum)
    • Clock
    • Orologi fisici, TAI, UTC
    • Cristian's Algorithm
    • The Berkley Algoritm
    • Orologi Logici
    • Algoritmo di Lamport
    • Esempi e applicazioni
    • Stato Globale di un Sistema Distribuito
    • Algoritmo per Distributed Snapshot
    • Elezione di un coordinatore
    • L'algoritmo di Bully per l'elezione di un coordinatore
    • L'algoritmo ad anello (Ring/Token Ring algorithm)
    • Mutual Exclusion - Un algoritmo centralizzato

Note dal docente: le prossime 5 lezioni saranno dedicate alla parte di laboratorio; di queste cinque, le prime tre si terranno in aula Alfa, le ultime due in aula Sigma.

Lezione di Mercoledì 29 marzo 2006

  • Elementi fondamentali delle reti TCP/IP
  • Il livello di trasporto: TCP e UDP
  • Programmazione con le socket: cosa sono e come si usano
  • Esempio e commento del codice per la comunicazione di un client e di un server in TCP usando le socket
  • Esempio e commento del codice per la comunicazione di un client e di un server in UDP usando le socket (concetto di datagramPacket)

Lezione di Mercoledì 05 aprile 2006

  • Server Concorrenti
  • Progettare un server concorrente
  • Thread in Java
  • Versione Multithread del TCP Server
  • Sincronizzazione
    • Metodi non sincronizzati
    • Metodi sincronizzati
  • Struttura di un server concorrente
  • Join(), Sleep(), Wait(), Notify()