L’obiettivo del corso è fornire allo studente la capacità di comprendere come i
sistemi operativi gestiscano e controllino le risorse del sistema di elaborazione con
obiettivi di efficienza e facilità d’uso, e in particolare:
- il ruolo del sistema operativo come intermediario tra le applicazioni e l’hardware
- la necessità di sovrapporre attività di CPU e di I/O per aumentare l’efficienza
- il concetto di processo e i principali modelli di interazione tra processi
- i criteri e gli algoritmi di scheduling della CPU per sistemi interattivi
- le nozioni di base per l’utilizzo di UNIX/Linux e per la gestione dei comandi
- le principali chiamate di sistema offerte da UNIX/Linux alle applicazioni.
Le principali capacità di applicare le conoscenze e comprensione elencate risultano
essere:
- analizzare e valutare le caratteristiche dei sistemi operativi general-purpose
- analizzare semplici interazioni tra processi in ambiente globale e individuare forme
di sincronizzazione attraverso semafori
- valutare le prestazioni dei principali algoritmi di scheduling della CPU per sistemi
interattivi con un workload prefissato
- analizzare interazioni tra processi UNIX, individuare gli strumenti di comunicazione
interprocesso e le primitive di sistema necessari, e realizzare programmi in C che li
utilizzano.