RETI DI CALCOLATORI

Docente: Antonio Corradi


CDL di appartenenza:

21 43 - Ingegneria delle telecomunicazioni
21 46 - Ingegneria elettronica
21 48 - Ingegneria informatica


Finalità del corso:

Il corso affronta le problematiche introdotte dai sistemi interconnessi, in particolare i sistemi distribuiti, sia nel senso di architetture di dimensioni limitate, sia di sistemi globali. Obiettivo è di analizzare i problemi, di classificare le soluzioni e di identificare i criteri di progetto.


Programma:

Generalità - Classificazione dei sistemi distribuiti, architetture MIMD e architetture a parallelismo massiccio, sistemi distribuiti decentralizzati ed eterogenei. Sistemi globali. Introduzione alla affidabilità delle soluzioni: ipotesi di guasto, protocolli per la tolleranza ai guasti. Necessità di considerare la qualità dei servizi (QoS) offerti.

Modelli di interazione - Classificazione delle interazioni in sistemi interconnessi: modelli cliente-servitore e sue evoluzioni, modelli a procedura remota, soluzioni a transazioni distribuite. Altri modelli di soluzione basati sul concetto di servizio. Esempi di interazione in sistemi standard di fatto (UNIX) e collegamenti con protocolli standard internazionali (TCP/IP). Applicazioni tipiche di Internet e Web: condivisione terminale, file e informazioni multimediali.

File system distribuiti - Requisiti di sistema: condivisione, disponibilità, replicazione e correttezza delle risorse, tolleranza ai guasti. Classificazione: file system di rete e file system distribuiti. Proprietà fondamentali: trasparenza, decentralizzazione, scalabilità. Esempi di sistemi (UNIX NFS, LOCUS, Sprite, Andrews). Criteri e metodologie di progetto.

Sistemi operativi distribuiti - Caratteristiche: allocazione e configurazione, granularità dei processi e loro interazione, mobilità dei processi, bilanciamento del carico, eterogeneità, tolleranza ai guasti. Problematiche di sicurezza nella comunicazione: crittografia e Kerberos. Esempi di sistemi (Chorus, Mach, Amoeba, DCE, CSTools). Criteri e metodologie di progetto.

Standardizzazione - Standardizzazione delle soluzioni: standard di comunicazione, ISO/OSI ed Internet, standard di riutilizzo dei servizi esistenti. Organizzazione a livelli: livelli applicativi. Metodologia ad oggetti, sintassi astratta e concreta (ASN.1 e BER). Applicazioni standard distribuite. Confronto dello standard con gli ambienti di programmazione disponibili. Standard emergenti nel settore cliente/servitore e degli ambienti distribuiti ad oggetti (Java e CORBA). Evoluzioni delle soluzioni e nuove proposte: TINA, CORBA. Nuovi modelli di servizio e soluzioni per sistemi mobili con supporto a flussi continui di informazioni e in sistemi di dimensioni globali.


Testi:

G. Coulouris, J. Dollimore, T. Kindberg: "Distributed Systems: concepts and Design", Addison-Wesley, (terza edizione) 2000.

L. Peterson, B. Davie: "Computer Network, A Systems Approach", Seconda edizione, Morgan Kaufmann, 2000, tradotto in "Reti di Calcolatori", Zanichelli, 1999.

F. Halsall, "Data Communication, Computer Networks and Open Systems", tradotto in 'Reti di Calcolatori e Sistemi Aperti', quarta edizione, Addison-Wesley, 1998.

R.W. Stevens, "TCP/IP Illustrated: vol.1, vol.2, vol. 3", Addison-Wesley, 1994/5/6.

D. Flanagan: "Java in a Nutshell - A Desktop Quick Reference", terza edizione, O'Reilly, 1999.

D. Ayers, et alii: "Professional Java Server Programming", Wrox Press, 1999.

W. Stalling: "Operating Systems: Internals and Design Principles", Prentice-hall, 1998 (3ed.).

D.L. Galli: "Distributed Operating Systems: Concepts and Practice", Prentice-Hall, 2000.

Si consigliano inoltre articoli e riviste sui diversi argomenti del corso (vedi http://lia.deis.unibo.it/Courses/RetiDiCalcolatori)
e si prevedono dispense con il materiale del corso.


Esami:

Gli esami consistono

 

Propedeuticità:

Si assume la conoscenza degli elementi di Calcolatori Elettronici II, ossia una buona conoscenza del settore dei Sistemi Operativi.