CODICE 80300 ANNO ACCADEMICO 2016/2017 CFU 15 cfu anno 2 INFORMATICA 8759 (L-31) - 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 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. 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. 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. 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 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. 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 GIOVANNI CHIOLA Ricevimento: Orario di ricevimento: su appuntamento (contattare preferibilmente via email) GIOVANNI LAGORIO Ricevimento: Orario di ricevimento: su appuntamento via email 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