Home Page

 

Corso di Sistemi Operativi A.A. 2007/2008

 

 

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)

 

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.

 

Appelli del 28 marzo e del 9 aprile 2008

Nella prova scritta del 28 marzo 2008 sarà possibile svolgere a scelta il secondo compitino o la prova completa

Nella prova scritta del 9 aprile 2008 sarà possibile svolgere a scelta:

  • primo compitino,
  • secondo compitino,
  • prova completa.

A partire dal terzo appello (sessione estiva) non sarà più possibile svolgere i compitini, ma soltanto la prova completa.

 

Compitino del 17/12/2007
Si considera superato il compitino se il proprio voto è maggiore o uguale a 15.

 

Appello del 28/03/2008
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

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

 

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

 

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