Sistemi Operativi (9 Crediti)
Corso di Laurea in Ingegneria Informatica
(Canale di Ingegneria delle Reti e dei Sistemi Informatici)
AA. 2009/2010
Docente Francesco Quaglia
28/7/2010 - L'esame di Sistemi Operativi del 30/7/2010 iniziera' alle ore 12:30 anziche' alle ore 10:00.
15/4/2010 - La lezione di Sistemi Operativi del 15/4/2010 non potra' avere luogo causa influenza del docente.
15/2/2010 - L'esame di Sistemi Operativi del 18/2/2010 e' spostato al 26/2/2010 alle ore 10.
25/9/2009 -
Risultati della prova d'esame di Sistemi Operativi del 21-9-2009
31/8/2009 - Il prossimo appello di Sistemi Operativi si svolgera' il giorno 21/9/2009 alle ore 14:00
17/7/2009 -
Risultati della prova d'esame di Sistemi Operativi del 17-7-2009
26/2/2009 - Le lezioni del corso inizieranno lunedi' 9-3-2009
L'esame richiede il superamento di una prova scritta e lo sviluppo di un progetto software in tecnologia C. Il voto conseguito alla prova scritta pesa 3/5 sul voto finale, quello relativo alla tesina pesa 2/5 sul voto finale. Entrambe le prove devono essere sostenute nello stesso anno accademico, sebbene possono essere sostenute in appelli differenti.
- Seguire questo link per accedere al sistema di assegnazione dei progetti via WEB.
Testi consigliati
- [T1] Sistemi operativi - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - Addison Wesley, settima edizione
- [T2] Operating Systems: Internals and Design Principles - William Stallings - Prentice Hall, fifth edition
- [T3] Francesco Quaglia, Camil Demetrescu, "Programmazione in Ambiente UNIX". Disponibile in formato pdf
- [T4] C/ANSI C, Principi di Programmazione e Manuale di Riferimento - Brian W.Kernighan, Dennis M.Ritchie - Pearson, Prentice Hall
Programma previsto per l'a.a. 2009-2010
- Introduzione ai sistemi operativi
- Richiami sull'organizzazione di un sistema di calcolo
- Obiettivi dei sistemi operativi
- Sistemi batch uniprogrammati
- Sistemi batch multiprogrammati
- Sistemi time-sharing
- Architettura di massima dei sistemi UNIX/Windows
- Processi
- Esecuzione e stati di processi
- Multiprogrammazione e Swapping
- Strutture di controllo di processi
- Immagine di un processo
- Liste di processi e scheduling
- Processi in sistemi UNIX/Windows
- Threads
- Concetti di base e ambienti multithreading
- Threads in sistemi UNIX/Windows
- Scheduling della CPU
- Metriche di riferimento
- Algorithmi di scheduling classici
- Scheduling multiprocessore
- Scheduling in sistemi UNIX/Windows
- Gestione della memoria
- Binding degli indirizzi
- Partizioni fisse e variabili
- Paginazione e segmentazione
- Memoria virtuale
- Gestione della memoria in sistemi UNIX/Windows
- File system ed I/O
- Il concetto di file
- Metodi di accesso
- Metodi di allocazione
- Implementazione del file system
- Schedulazione del disco e gestione dei buffer di I/O
- File system ed I/O in sistemi UNIX/Windows
- Concorrenza e sincronizzazione
- Memoria condivisa
- Sezioni critiche
- Mutex e semafori
- Tecniche di gestione del deadlock
- Esempi in sistemi UNIX/Windows
- Complementi
- Scambio di messaggi: paradigmi ed esempi in sistemi UNIX/Windows
- Pipe e FIFO (pipe con nome) in sistemi UNIX/Windows
- Gestione di eventi asincroni: segnali UNIX ed eventi Windows
- Servizi di sistema per la programmazione di rete
- Stack di protocoli di comunicazione
- Protocolli Internet: suite TCP/IP
- Sockets in sistemi UNIX/Windows
Slides delle lezioni