Il corso di Sistemi Operativi ha lo scopo di introdurre le architetture e i principi di funzionamento e di progetto dei sistemi operativi. Verranno descritti i concetti e i meccanismi fondamentali per la gestione dei processi, della memoria, dell'I/O e del file system sui cui sono basati i sistemi operativi moderni. Nel corso si pone una particolare enfasi sui meccanismi di cooperazione e comunicazione tra processi e threads e vengono presentati e discussi esempi di programmazione concorrente tramite l'utilizzo dei meccanismi di concorrenza di Java e delle system call offerte dal sistema operativo Linux.