Sistemi Operativi (5 CFU)
Corso di Laurea in Ingegneria delle Telecomunicazioni (I anno Laurea Magistrale)
Facoltà di Ingegneria
Università degli Studi di Cassino
Anno accademico 2008/2009
Ing. Mario Molinara
Mail: m.molinara@unicas.it
Obiettivi formativi
Scopo del corso è quello di presentare i principali strumenti metodologici per l'analisi del software di sistema, con particolare riferimento al Sistema Operativo Linux. Nella prima parte viene introdotto il modello a processi di un S.O., unitamente alla gestione delle risorse hardware di sistema. Nella seconda parte vengono illustrate le principali caratteristiche di Linux sia come visione utente che come programmazione di sistema.
I punti essenziali del programma del corso:
- S trutture dei sistemi operativi - Kernel monolitici e microkernel
- I processi
- La sincronizzazione dei processi
- Lo scheduling della CPU
- I deadlocks
- La gestione della memoria primaria
- La memoria virtuale
- L'interfaccia del file system
- L'implementazione del file system
- Log-structured e journaled file systems
- La struttura della memoria secondaria - strutture RAID
- Programmazione di sistema Linux e System Call
- Introduzione alla programmazione concorrente mediante threads
Le esercitazioni saranno svolte con i seguenti sistemi operativi / ambienti:
- Windows XP/2003 server
- Linux
- Android
- Symbian
- Windows Mobile
- Java Micro Edition
- Netbeans
Slide proiettate a lezione (I capitoli si riferiscono alla VII edizione del libro)
Altro materiale utile
- Linux Facile (Sito ufficiale)
- Scheduler del Kernel 2.6 (Introduzione)
- Sorgenti Silberschatz
- Sistema Operativo (Wikipedia)
- Mappa interattiva del kernel Linux
- VMWare Server (Software di virtualizzazione free).
- Immagini di installazione di Sistemi Operativi per VMWare
Esercitazioni
- Condivisione memoria
- Calcolo parallelo con programma multi-processo.
- Calcolo parallelo con programma multi thread
- Sistema produttore consumatore semplice (1 vs 1)
- Sistema produttore consumatore semplice multithread (1 vs 1)
- Sistema produttore consumatore multithread (N vs M)
- Sistema produttore consumatore multithread (N vs M) con gestione sincronizzata
Libri di testo
- A. Silberschatz, P. Galvin, Greg Gagne, Sistemi operativi - Concetti ed Esempi, Settima edizione, Addison-Wesley
- D.P.Bovet, M.Cesati, Understanding the Linux Kernel, O'Reilly
Link utili e download