Home Page

 

Corso di Sistemi Operativi A.A. 2006/2007

 

Orario
  • Martedì III fascia (15.00-16.45) - Aula H
  • Mercoledì III fascia (15.00-16.45) - Aula H
  • Giovedì I fascia (9.00-10.45) - Aula E

 

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, "I moderni sistemi operativi" (seconda ed.). Jackson Libri, 2002. ISBN 88-256-1898-0.

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)

 

Calcolo del voto
Il voto si calcola tenendo conto di due componenti:
  1. il voto dell'esame scritto,
  2. la media dei voti relativi ai tre progetti del Corso di Laboratorio di Sistemi Operativi.
Il primo componente pesa per due terzi del voto finale, il secondo per un terzo.

 

Compitino del 05/12/2006
Si considera superato il secondo compitino se il proprio voto è maggiore o uguale a 15.

 

Compitino/Appello del 22/03/2007
Si considera superato il secondo compitino se il proprio voto è maggiore o uguale a 15.
Risposte ai quesiti dei compitini
Gli esercizi del compito d'esame sono tratti dai compitini (consultare il file precedente per le soluzioni).

 

Compitino/Appello del 02/04/2007
Si considera superato il secondo compitino se il proprio voto è maggiore o uguale a 15.
Risposte ai quesiti dei compitini
Gli esercizi del compito d'esame sono tratti dai compitini (consultare il file precedente per le soluzioni).

 

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

 

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

 

Appello del 17/12/2007
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.