SISTEMI OPERATIVI

Anno accademico 2015/2016 - 2° anno
Docente: Lucia LO BELLO
Crediti: 6
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Modalità di erogazione: Tradizionale
Organizzazione didattica: 150 ore d'impegno totale, 115 di studio individuale, 35 di lezione frontale
Semestre:
ENGLISH VERSION

Obiettivi formativi

Il corso affronta i concetti fondamentali e le problematiche di progetto dei Sistemi Operativi. Fornisce conoscenze sulle tecniche di gestione e virtualizzazione delle risorse (CPU, memoria centrale e di massa, periferiche). Prendendo LINUX come principale riferimento, il corso fornisce agli studenti le conoscenze e gli strumenti per la realizzazione di programmi inerenti processi, thread, e meccanismi per la loro comunicazione e sincronizzazione su risorse condivise

Contenuti del corso

Introduzione ai Sistemi OperativiConcetti generali. Storia e classificazione dei sistemi operativi. Lo standard POSIX.Chiamate di sistema.Struttura dei sistemi operativi.Processi, thread e gestione della CPU.Processi, thread e processi leggeri.System call per creazione e gestione di processi e di segnali. Modelli di multithreading. POSIX thread.Programmazione con pthread.h. Multithreading in Linux.Schedulazione della CPU. Schedulazione in Linux. Schedulazione nei sistemi real-time.Gestione della Concorrenza,Corsa critica. Sezione critica. Mutua esclusione. Soluzioni con Attesa Attiva. Semafori. Mutex.InterProcess Communication (IPC)Pipe senza nome, FIFOs, Code di Messaggi, Memoria condivisa.Problemi Classici di IPC.Deadlock.Definizione e caratterizzazione dei deadlock. Strategie di gestione (detection, prevention, avoidance).Gestione della MemoriaMemoria virtuale. Paginazione e segmentazione. Strategie di rimpiazzamento pagine. Gestione della memoria in Linux.File SystemFile. Directory. Implementazione di flie system. Esempi di file system.Input/OutputI/O hardware. I/O software. Interrupt.Sistemi multiprocessore e sistemi distribuiti.Cenni sui sistemi multiprocessore.Modello client-server. Server iterativi e concorrenti. Socket.Casi di studioLinux, Windows.

Testi di riferimento

- Per la parte teorica (theory): Andrew S. Tanenbaum, “I moderni sistemi operativi 3/Ed.", 2009, ISBN 978887192540. (Also available in English).
-Ad integrazione della parte teorica e per la parte pratica/ (to integrate the theory and for practice): R. Stones, N. Matthew, “Beginning Linux Programming”, 4th edition, Wrox Press, 2007.
- Linux Internals: D. P. Bovet, M.Cesati, Understanding the Linux Kernel3rd Edition,O'Reilly,November 2005