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

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

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