Salta al contenuto principale
CODICE 80300
ANNO ACCADEMICO 2023/2024
CFU
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, il corso 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

Obiettivo del corso è far acquisire agli studenti la consapevolezza di come funziona un sistema operativo e come comunicano gli 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

Commissione d'esame

GIOVANNI CHIOLA (Presidente)

GIOVANNI LAGORIO (Presidente Supplente)

MARINA RIBAUDO (Supplente)

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 poter 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

Calendario appelli

Dati Ora Luogo Tipologia Note
19/01/2024 10:00 GENOVA Laboratorio
15/02/2024 10:00 GENOVA Laboratorio
05/06/2024 10:00 GENOVA Laboratorio
03/07/2024 10:00 GENOVA Laboratorio
17/09/2024 10:00 GENOVA Laboratorio