28024 - RETI DI CALCOLATORI T (L-Z)

Scheda insegnamento

SDGs

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

Istruzione di qualità Parità di genere Imprese innovazione e infrastrutture Città e comunità sostenibili

Anno Accademico 2020/2021

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 da svolgere individualmente e in gruppo 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

  • modello di interazione cliente/servitore
  • modelli a memoria condivisa ed a scambio di messaggi
  • 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

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

Lo strumento principale a livello di protocollo sono le socket di comunicazione e a livello applicativo le proposte Cliente /Servitore.

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', quinta edizione, Addison-Wesley, 2012.

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, M. V.Steen: "Distributed Systems: Principles and Paradigms", Prentice-Hall, seconda edizione 2007, e prima 2002.

B. Forouzan, F. Mosharraf: “Computer Networks, a top down approach”, McGraw-Hill, 2012.

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

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

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 parte 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 tra studenti: qualunque tentativo di frode o copiare verrà perseguito e punito.

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

Modalità di verifica 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 prova e si svolge su tutti gli argomenti del corso, con l'obiettivo di 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

Consulta il sito web di Luca Foschini