Sistemi Operativi (5 CFU)
Corso di Laurea in Ingegneria delle Telecomunicazioni (I anno Laurea Specialistica)
Corso di Laurea in Ingegneria Elettrica (I anno Laurea Specialistica)
Facoltà di Ingegneria
Università degli Studi di Cassino
Anno accademico 2007/2008
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:
- Windows XP/2003 server
- Linux
Slide proiettate a lezione (I capitoli si riferiscono alla VII edizione del libro)
- Capitolo 1
- Capitolo 2
- Capitolo 3
- Capitolo 4
- Capitolo 5 - Integrazione Capitolo 5
- Capitolo 6 - Integrazione Capitolo 6
- Capitolo 7 - Integrazione Capitolo 7
- Capitolo 8 - Integrazione Capitolo 8
- Capitolo 9
- Capitolo 10
Altro materiale utile
Esercitazioni
- Esercitazione del 7 febbraio 2008 (Shell semplice)
- Esercitazione del 7 e del 14 febbraio (Server iterativo/concorrente)
- Esercitazione del 21 febbraio 2008 (Multi threading java)
- Produttore Consumatore e i 5 filosofi in java.
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
- Manuale di programazione C per Linux.
- Il codice del kernel di Linux navigabile.
- LDAP
- The Linux documentation project.
- Programmazione C (Manuale Interessante).
- Software di sviluppo C++ cross platform (eclipse per java con istruzioni per il funzionamento con C++ per windows).
- VMWare player (Software free).
- Immagini di installazione Linux per VMWare.