CODICE 80300 ANNO ACCADEMICO 2025/2026 CFU 12 cfu anno 2 INFORMATICA 8759 (L-31) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Prendendo spunto dalla convergenza tra le tecnologie di elaborazione e di trasmissione delle informazioni, l'insegnamento vuole fornire una visione d'insieme sulla progettazione, realizzazione e gestione efficiente e sicura di un sistema operativo di rete, analizzando inoltre le principali problematiche legate alla trasmissione dei dati in una moderna rete di calcolatori. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Assimilare le tecniche per la progettazione, la realizzazione e la gestione efficiente e sicura di sistemi di elaborazione e sistemi distribuiti: a livello di sistema operativo, per esecuzione multitasking, supporto alla concorrenza, cooperazione e sincronizzazione fra thread e fra processi, gestione dell'I/O, gestione dei file e virtualizzazione di calcolatori. A livello di una moderna rete di calcolatori, per valutare le caratteristiche di affidabilità, sicurezza e facilità di gestione che derivano dalle scelte di progetto dei protocolli utilizzati. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine dell'insegnamento, lo studente/la studentessa sarà in grado di: comprendere il funzionamento di un sistema operativo e le modalità di comunicazione degli elaboratori in rete, formando professionisti che possano gestire un moderno sistema di elaborazione, intervenendo efficacemente in caso di problemi. PREREQUISITI Familiarità con il linguaggio C/C++ MODALITA' DIDATTICHE Lezioni in aula, utilizzando la lavagna oppure slide, ed esercitazioni in laboratorio PROGRAMMA/CONTENUTO l programma dell'insegnamento è molto vasto, si elencano qui alcuni degli argomenti affrontati a lezione (l'ordine degli argomenti non corrisponde necessariamente alla cronologia delle lezioni). Parte di sistemi di elaborazione - panoramica storica e introduzione ai moderni sistemi operativi - processi e thread; scheduling - gestione e virtualizzazione della memoria - file system - input/output - protezione e sicurezza. Le tematiche di sincronizzazione e i problemi di deadlock, tipici argomenti dei corsi di sistemi operativi, verranno solo accennati perché trattati approfonditamente in altri corsi. Parte di trasmissione delle informazioni - panoramica sulle tecnologie di rete e sull'internetworking - stratificazione dei protocolli - qualità di servizio e caratteristiche di sicurezza dei protocolli - lo stack di Internet, dal livello applicativo a quello di rete locale - il Web e il protocollo HTTP - trasferimento di file, protocollo FTP - posta elettronica, protocolli SMTP, POP, IMAP - directory service di Internet, il protocollo DNS - protocolli di trasporto: UDP e TCP - protocollo IP - livello Link e reti locali, protocolli 802.3 e 802.11, ARP, DHCP Sono previste delle esercitazioni, che devono essere consegnate durante il semestre e vengono valutate in sede di esame. TESTI/BIBLIOGRAFIA Libri utili Per la parte di sistemi : - The Linux Command Line (gratuito), di William Shotts; scaricabile da: http://linuxcommand.org/tlcl.php - "Operating Systems: Three Easy Pieces" (gratuito) http://pages.cs.wisc.edu/~remzi/OSTEP/ - "xv6 Book" (gratuito) https://pdos.csail.mit.edu/6.828 Per la parte di reti: - Computer Networking, a Top-Down Approach di James F. Kurose e Keith W. Ross DOCENTI E COMMISSIONI DANIELE D'AGOSTINO Ricevimento: Su appuntamento in presenza o Teams MATTEO DELL'AMICO Ricevimento: Su appuntamento (in presenza o online) definito per email (matteo.dellamico@unige.it). ARNAUD HENRI PAUL SANGNIER Ricevimento: Ricevimento su appuntamento via mail. LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Prova di laboratorio per l'ammissione al successivo esame orale. L'esame orale verte sugli esercizi di laboratorio consegnati e su tutti gli argomenti teorici visti a lezione. MODALITA' DI ACCERTAMENTO L'esame consiste in - esercizi di programmazione, consegnati durante l'anno (o, comunque, prima di sostenere le altre prove), volti a verificare che lo studente sappia utilizzare gli strumenti teorici e pratici visti a lezione - una prova di laboratorio, di ammissione all'orale, volta ad accertare le conoscenze teoriche e competenze pratiche acquisite durante lo svolgimento degli esercizi di programmazione - una prova orale che consisterà nella discussione degli esercizi consegnati e argomenti teorici discussi durante l'insegnamento; in particolare, verrà valutata la capacità di analizzare criticamente pro e contro di diverse scelte progettuali e implementative