Salta al contenuto principale
CODICE 80300
ANNO ACCADEMICO 2025/2026
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, 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

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