L'obiettivo del corso è la descrizione della struttura e delle funzioni di un moderno sistema operativo multiprogrammato. Dopo aver introdotto i concetti di base relativi ai sistemi operativi moderni, il corso illustra i modelli teorici e le tecniche realizzative per la gestione dei processi, della memoria, del file system, dei sistemi di I/O e della memoria secondaria. Introduce i principi della programmazione concorrente e insegna i concetti e le tecniche relative alla sincronizzazione tra processi e thread, con sperimentazioni pratiche in laboratorio in C e Java. Come casi di studio vengono analizzati i sistemi operativi Unix/Linux, Windows e Mac OSX.

Il primo modulo del corso illustra le funzioni e i componenti di un sistema operativo. 
Il secondo modulo tratta gli argomenti della programmazione concorrente e della sincronizzazione tra processi e thread.

Questo è lo spazio per il Modulo 1.