28024 - RETI DI CALCOLATORI T (A-K)

Anno Accademico 2019/2020

  • Docente: Antonio Corradi
  • Crediti formativi: 9
  • Lingua di insegnamento: Italiano

Contenuti

Il corso si articola in lezioni frontali e laboratorio in modo integrato e molto collegato. Le esercitazioni propongono progetti sugli strumenti svolti a lezione e da svolgere individualmente in laboratorio.

1. Generalità e Concetti di Base Generalità dei sistemi distribuiti

  • inquadramento generale e definizioni di base
  • sistemi distribuiti decentralizzati ed eterogenei
  • necessità di standardizzazione delle soluzioni (ISO/OSI ed Internet)

Si presentano alcuni modelli caratteristici, come

  • modelli a memoria condivisa ed a scambio di messaggi
  • modello di interazione cliente/servitore
  • modelli di connessione, di replicazione, ecc.

2. Ambienti Standard

Standardizzazione
Organizzazione a livelli ISO OSI

  • livello di trasporto e di rete
  • livelli applicativi: sessione, presentazione, e applicazione

Alcune applicazioni standard distribuite

3. Protocolli TCP/IP TCP/IP e protocolli

I protocolli della suite TCP/IP: livelli di rete e di trasporto
Applicazioni comuni per:

  • servizi sincroni: terminale remoto virtuale, trasferimento di file,
  • servizi asincroni: mail, news, e altri

Alcuni strumenti a larga diffusione in ambiente UNIX e Windows ai diversi livelli

4. Alcuni strumenti di riferimento

Socket e relative primitive Socket in C (per UNIX) e in Java
Esempi di interazione in sistemi UNIX e collegamenti con TCP/IP
Alcune applicazioni cliente servitore
Chiamate di Procedura Remota o RPC
RMI, operazioni remote in Java

5. Sistemi Operativi Distribuiti e servizi

Sistemi operativi distribuiti
Naming delle risorse
Granularità dei processi e loro interazione
Gestione delle risorse
File system
Alcuni problemi e possibili soluzioni
Sistemi di nomi e DNS
Soluzioni per evitare congestione ed evoluzione dei protocolli.

Testi/Bibliografia

G. Coulouris, J. Dollimore, T. Kindberg: 'Distributed Systems: concepts and Design', quarta edizione, Addison-Wesley, 2005.

M.L. Liu: 'Distributed Computing', Addison-Wesley, 2003.

J.F. Kurose, K.W. Ross: 'Internet e Reti', McGraw-Hill, 2001 (tradotto nel 2001 da 'Computer Networking: a Top-Down Approach Featuring the Internet', 2001).

A.S. Tanenbaum: 'Computer Networks', Prentice-Hall, 1988 (tradotto in 'Reti di Calcolatori', Jackson).

D. Reilly, M. Reilly: 'Java Network Programming and Distributed Computing', Addison-Wesley, 2002.

Metodi didattici

Il corso si articola in lezioni frontali e laboratorio in modo integrato e molto collegato.

Le esercitazioni propongono progetti sugli strumenti svolti a lezione e da svolgere a gruppi e presentare successivamente in laboratorio, discutendone con i docenti secondo uno scheduling molto integrato con le lezioni. Le esercitazioni entrano così a fare paerte della valutazione.

Le esercitazioni durante il corso sono svolte con la stessa modalità del progetto finale (parte in ambiente C e in Java).
In particolare si richiedono competenze per il progetto di piccoli casi cliente/servitore, in diversi ambiti e con diversi strumenti:
- socket da usare in C e Java, per diversi protocolli e diversi casi di uso;
- RPC, per progetto di clienti e servitori ad alto livello, con tecnologie SUN;
- RMI, per progetto in Java di clienti servitori.

La frequenza è particolarmente importante per la verifica delle proprie conoscenze e del proprio stato di avanzamento.

Lo studente è responsabile delle proprie risorse di calcolo e del materiale che ha a disposizione per lo svolgimento delle prove:
in particolare si richiede una autonomia di soluzione e capacità di svolgere semplici progetti in tempi limitati, usando le risorse messe a disposizione in laboratorio.
Le prove eseguite in laboratorio sono personali e senza comunicazione: qualunque tentativo di frode o copiare verrà perseguito e punito.

URL: lia.disi.unibo.it/Courses/RetiT

Modalità di verifica e valutazione dell'apprendimento

Obiettivo è verificare le capacità operative dello studente e le sua autonomia in una soluzione.

Gli esami consistono di

  • Una prova scritta svolta come un progetto in laboratorio con tempo limitato e qualunque materiale di supporto; la prova consiste di due parti, che fanno riferimenti ai due anbienti di lavoro che vengono presentati nel corso.
  • Una prova orale successiva.

La prova di progetto (scritta) prevede l'assegnamento di un voto in 30esimi che dipende dal corretto svolgimento delle due parti dello stesso.

La prova orale si sostiene solo con esito positivo della prima su tutti gli argomenti del corso e per verificare una corretta capacità di orientamento. Il giudizio finale dopo la prova di progetto si basa sulla valutazione della prova orale, e può essere completato da altri elementi di valutazione (prove ulteriori e progetti facoltativi).

Strumenti a supporto della didattica

In aula si usano lucidi e discussioni di piccoli progetti.
Sito web del corso ad URL: lia.disi.unibo.it/Courses/RetiT

In laboratorio sono presenti strumenti di sviluppo e di supporto alla esecuzione dei progetti.

Gli studenti sono invitati a familiarizzare con questi o altri strumenti di uso personale.
Si suggeriscono strumenti in ambiente UNIX (Linux). La operatività e le capacità di realizzare piccoli progetti sono particolarmente importanti.

Orario di ricevimento

Consulta il sito web di Antonio Corradi

SDGs

Istruzione di qualità Parità di genere Imprese innovazione e infrastrutture Consumo e produzione responsabili

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.