Salta al contenuto principale
CODICE 80300
ANNO ACCADEMICO 2016/2017
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Prendendo spunto dalla convergenza tra le tecnologie di elaborazione e di trasmissione delle informazioni, il corso vuole fornire una visione d'insieme delle principali problematiche di progettazione, realizzazione e gestione efficiente e sicura di un moderno sistema distribuito di rete. Dopo una breve introduzione alle tecniche di misurazione quantitativa delle risorse impiegate da un programma in fase di esecuzione e all'analisi operazionale (non statistica) dei sistemi, si prosegue lungo il percorso iniziato nel corso di Sistemi di elaborazione dell'informazione, presentando i problemi fondamentali e le principali tecniche, realizzate a livello di Sistema Operativo, relative ai seguenti aspetti dei moderni sistemi di elaborazione: esecuzione multitasking; supporto alla concorrenza, cooperazione e sincronizzazione fra thread e fra processi; gestione dell'I/O; gestione dei file; virtualizzazione di calcolatori. Verrà fornito inoltre un quadro di insieme delle principali problematiche della trasmissione dei dati e dell'architettura e dei meccanismi di una moderna rete di calcolatori basata sulla suite TCP/IP, secondo un modello a livelli di astrazione successivi, partendo dal livello applicazione (RPC, Socket, FTP, HTTP, DNS, SMTP, POP, ecc.) e scendendo fino al livello data link (Ethernet). Oltre alla mera descrizione dei protocolli, si enfatizzano le caratteristiche di affidabilità, sicurezza, e maggiore o minore facilità di gestione che derivano dalle varie scelte di progetto dei protocolli stessi.

MODALITA' DIDATTICHE

Mista: Le lezioni sono svolte in forma tradizionale in aula, mentre le esercitazioni di laboratorio (a consegna obbligatoria) sono gestite mediante Aulaweb.

PROGRAMMA/CONTENUTO

l programma del corso è molto vasto, si elencano qui alcuni degli argomenti affrontati a lezion (l'ordine degli argomenti non corrisponde necessariamente alla cronologia delle lezioni).
Sono anche previste tre esercitazioni di programmazione con chiamate di sistema Unix/POSIX; uso di socket; misure di traffico sulla rete; uso di Wireshark su macchina virtuale per il monitoraggio del traffico; interazione col file system e implementazione di comandi di shell; gestione esplicita di processi e thread; implementazione di un server web. Le esercitazioni devono essere consegnate durante il semestre e vengono valutate in sede di esame.

Per la parte di Sistemi Operativi

  1. Introduzione
    Richiami alla struttura del calcolatore ed elementi di sistemi operativi già visti a SEI1. Interruzioni, memoria virtuale, DMA, trap, politiche di coda, analisi operazionale.
  2. Processi e Thread
    Paradigmi di interazione: condivisione, sincronizzazione, bufferizzazione, comunicazione. Scheduling di thread e processi. Processi e thread in Unix/Linux. Socket e API di comunicazione in locale e/o via rete.
  3. Il nucleo di sicurezza
    Controllo degli accessi e virtualizzazione delle risorse, identificazione, autenticazione e autorizzazione degli utenti, modelli mandatori, discrezionali e basati sui ruoli; access lists e capabilities. Kernel monolitico, microkernel modulare.
  4. Gestione e virtualizzazione dei dispositivi
    Dispositivi e processi di controllo. Gestione di alcuni dispositivi: dispositivi a caratteri, a blocchi e clock.
    File system reali e pseudo file system; gestione della persistenza dei dati in presenza di dispositivi di memoria volatile; consistenza, aggiornamento, concorrenza e journaling.

 Per la parte di Protocolli di Rete

  1. Panoramica sulle tecnologie di rete e sull'internetworking. 
    Stratificazione dei protocolli e tecnologie attualmente in uso sulla rete Internet. Qualità di servizio e caratteristiche di sicurezza dei protocolli.

  2. Lo stack di Internet
    * Livello Application
    Il Web e il protocollo HTTP: formato dei messaggi, connessioni persistenti e non persistenti, cookies, Web caching, GET condizionale. 
    Traferimento file, il protocollo FTP: comandi principali e risposte, FTP attivo e passivo. 
    Posta elettronica, i protocolli SMTP, POP, IMAP: formato dei messaggi e comandi principali, l'estensione MIME, il problema del "Third Party Mail Relay". 
    Directory service di Internet, il protocollo DNS: funzionamento del protocollo, formato dei record DNS, domande e risposte.
    * Livello Transport
    Trasporto senza connessione, il protocollo UDP: caratteristiche principali. 
    Trasporto con connessione, il protocollo TCP: struttura dei segmenti, trasferimento dati affidabile, controllo di flusso, controllo della congestione.
    *Livello Network
    Il protocollo IP: il formato degli indirizzi IPv4 e IPv6, consegna di datagrammi IP. Algoritmi di instradamento (RIP, OSPF, BGP, routing broadcast e multicast). Come funziona un router. Messaggi di errore e di controllo.
    * Livello Link e reti locali
    Protocolli di accesso e indirizzamento nelle reti locali: il caso della rete Ethernet. Integrità dei messaggi, message Authentication Codes (MAC).

TESTI/BIBLIOGRAFIA

Per la parte di sistemi operativi (testi utili ma non indispensabili):
Kay A. Robbins and Steve Robbins "Unix Systems Programming: communication, concurrency and threads", Prentice Hall, ISBN: 978-0130424112
A. Silberschatz, P. B. Galvin, and G. Gagne "Operating System Concepts", Wiley, 8 edition, ISBN: 978-0470128725

 Per la parte di protocolli di rete:
James F. Kurose, Keith W. Ross, Computer Networking, a Top-Down Approach, Addison-Wesley (esiste anche la traduzione in italiano e più copie in biblioteca)

DOCENTI E COMMISSIONI

Commissione d'esame

GIOVANNI CHIOLA (Presidente)

DAVIDE ANCONA

GIOVANNI LAGORIO

FRANCESCO MASULLI

LEZIONI

ESAMI

MODALITA' D'ESAME

Esame orale dopo prova scritta di autovalutazione. L'esame orale verte sulla correzione degli esercizi di laboratorio consegnati e su tutti gli argomenti teorici visti a lezione.

Calendario appelli

Data appello Orario Luogo Tipologia Note
09/06/2017 10:00 GENOVA Scritto
06/07/2017 10:00 GENOVA Scritto
04/09/2017 10:00 GENOVA Scritto
25/09/2017 15:00 GENOVA Scritto