Home Page

 

Corso di Sistemi Operativi A.A. 2008/2009

 

 

Obiettivo
Il corso ha l'obiettivo di fornire allo studente le nozioni per comprendere i principi su cui si fonda la progettazione di un sistema operativo moderno, ovvero, del software che permette di "controllare" l'hardware di un sistema di calcolo, gestendone le risorse.

 

Docenti

 

Programma del corso
1.

Aspetti generali:

  • ruolo del sistema operativo (SO) in un sistema di calcolo;
  • evoluzione dei SO; tipi di SO (batch/interattivi, time-sharing/dedicati, real-time, paralleli, distribuiti, sistemi embedded...);
  • richiami sull'architettura di un sistema di calcolo (livelli di esecuzione delle istruzioni, gestione delle interruzioni, gestione dell'I/O);
  • il SO come gestore di risorse: processi, memoria, dispositivi, file, interazione con l'utente;
  • il SO come macchina virtuale: il nucleo, le chiamate di sistema;
  • struttura di un sistema operativo (monolitico, a livelli, macchine virtuali, exokernel, microkernel client-server);
  • esempi: Unix tradizionale, Linux, Solaris, Mach, Windows NT.

 
2. Processi e Thread:
  • il concetto di processo: definizione e ruolo, il descrittore di processo;
  • la manipolazione dei processi: la creazione/terminazione di un processo, grafo degli stati di un processo, la commutazione di contesto, lo scheduling di processi;
  • i processi leggeri (threads): modello a thread, thread a livello utente vs. a livello kernel, soluzioni ibride, thread pop-up, passaggio da thread singolo a multithread;
  • ruolo del nucleo: gestione interruzioni e traps, operazioni di wait e signal su condizioni di attesa;
  • lo scheduling dei processori: concetti di base, criteri di scheduling, algoritmi di scheduling, scheduling di sistemi a multiprocessore, scheduling real-time.
 
3. Programmazione concorrente:
  • race condition e sezioni critiche;
  • mutua esclusione;
  • sincronizzazione tra processi e memorie condivise;
  • scambio messaggi;
  • primitive di comunicazione e sincronizzazione: semafori, mutex, monitor, scambio di messaggi;
  • problemi classici: produttore/consumatore, filosofi, lettori/scrittori, barbiere;
  • stallo: definizione, modelli per lo stallo, identificazione, prevenzione.
 
4. Gestione della memoria:
  • gerarchie di memoria: registri, cache, memoria centrale, memoria virtuale, dischi;
  • il binding degli indirizzi, spazi logici e fisici di indirizzamento, la rilocazione;
  • tecniche di allocazione: contigua, la paginazione, la segmentazione; la frammentazione;
  • la memoria virtuale: paginazione a richiesta, algoritmi di sostituzione delle pagine, il thrashing, il modello Working set.
 
5. Input/Output:
  • tipi di dispositivi di I/O - principi dell'hardware di I/O;
  • gestione a basso livello dei dispositivi di I/O - PIO, DMA, DVMA;
  • il trattamento delle interruzioni, i driver di I/O - I/O bloccante, non bloccante, asincrono - interfaccia per le applicazioni;
  • i dischi - algoritmi di schedulazione dei dischi.
 
6. Il file system:
  • il file, attributi, operazioni, struttura fisica;
  • metodi di accesso sequenziale, diretto, a indice;
  • le directory e la struttura logica di un file system: piatta, gerarchica, a grafo;
  • la protezione; la consistenza;
  • implementazione dei file system: organizzazione, allocazione e gestione spazio libero, backup e restore;
  • struttura di un disco: gestione delle partizioni, gestione delle aree di swap;
  • il caso di Unix: UFS, EXT2. Tabelle in kernel. Il Virtual File System. Risoluzione dei nomi in inode;
  • operazioni su dischi, partizioni e file system;
  • cenni ai journaled file system.
 
7. Sistemi con processori multipli:
  • concetti generali - processori strettamente/debolmente accoppiati;
  • multiprocessori - aspetti hardware, software. Limitazioni;
  • multicomputer - aspetti hardware - comunicazione a basso livello, a livello utente - RPC - memoria condivisa distribuita;
  • sistemi distribuiti - servizi e protocolli di rete, e distribuiti - il modello client/server, protocolli - modello ISO/OSI, la suite TCP/IP - middleware di comunicazione;
  • modelli distribuiti basati sulla migrazione dei dati, della computazione, dei processi; su coordinazione distribuita;
  • chiamate di procedure remote (RPC) - esempio di servizio distribuito: NFS.
8. Introduzione a problematiche di sicurezza

 

Bibliografia
Testi consigliati:
1. A. Silberschatz, P.B. Galvin, G. Gagne, "Sistemi operativi - Concetti ed esempi" (settima ed.). Pearson/Addison-Wesley, 2006. ISBN 88-7192-233-6.
2. Andrew S. Tanenbaum, "Modern Operating Systems" (third ed.). Prentice Hall, 2008.

Testo di consultazione:
3. Harvey M. Deitel, Paul J. Deitel. David R. Choffnes "Sistemi Operativi", (terza ed.). Pearson - Prentice Hall, 2005. ISBN 88-7192-224-7.

 

Lucidi delle lezioni (formato PDF)

 

Compitini

Nel primo appello sarà possibile svolgere il secondo compitino anche per gli studenti che abbiano riportato un voto insufficiente nel primo compitino.

Tali studenti potranno poi recuperare il primo compitino nel secondo appello.

Nel secondo appello sarà possibile recuperare uno dei due compitini (in caso di voto insufficiente in uno dei due).

A partire dal terzo appello in poi sarà possibile svolgere soltanto la prova scritta completa. Quindi riassumendo le possibilità di scelta sono le seguenti:

  • Primo appello: secondo compitino oppure prova scritta completa.
  • Secondo appello: primo compitino, secondo compitino oppure prova scritta completa.
  • Dal terzo appello: soltanto prova scritta completa.

 

Come viene determinato il voto

Il voto di Sistemi Operativi e Laboratorio viene determinato come la media (pesata con il n.di CFU) del voto di teoria (dato dalla media dei due compitini o dal voto della prova d'esame scritta) e del voto di Laboratorio.

Quindi voto= (11 x [voto teoria] + 4 x [voto laboratorio])/15

L'orale è obbligatorio se il voto riportato è maggiore o uguale a 15 e minore di 18.

 

Appello del 01/07/2009
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

Appello del 15/07/2009
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

Appello del 04/09/2009
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

Appello del 22/09/2009
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.