Home Page

 

Corso di Sistemi Operativi A.A. 2010/2011
(Informatica e TWM)

 

 

Informazioni su compitini ed appelli
Nel primo appello d'esame (23 giugno 2011) sarà possibile effettuare una delle seguenti scelte:
  1. svolgere il secondo compitino (argomenti: dalla memoria virtuale in poi, ovvero, fino al filesystem compreso);
  2. svolgere il compito completo (su tutti gli argomenti del corso).
Nel secondo appello d'esame (7 luglio 2011) sarà possibile effettuare una delle seguenti scelte:
  1. svolgere il primo compitino (argomenti: fino alla gestione della memoria inclusa);
  2. svolgere il secondo compitino (argomenti: dalla memoria virtuale in poi, ovvero, fino al filesystem compreso);
  3. svolgere il compito completo (su tutti gli argomenti del corso).
Quindi anche chi non ha superato o non ha sostenuto il primo compitino a febbraio può venire a sostenere il secondo compitino durante il primo appello e poi recuperare il primo compitino al secondo appello.
Chi dopo il primo appello avrà superato (voto maggiore o uguale a 15) entrambi i compitini potrà comunque sfruttare il secondo appello per tentare di migliorare il voto (se lo desidera) di uno dei due compitini. Verranno tenuti buoni i voti migliori.
A partire dal terzo appello sarà possibile svolgere soltanto il compito completo (ovvero, non saranno più disponibili i compitini).

 

Avviso
Le lezioni del corso sono terminate in data 07/04/2011.

 

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.

 

***OS Development***
Per gli studenti che vogliano approfondire praticamente le tematiche di progettazione dei sistemi operativi affrontate durante il corso, si segnala il progetto OS Development a cura di Marco Paviotti (ex-studente del corso) che terrà un intervento sul tema all'Open Source Day 2010.

 

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.
 

 

Bibliografia
Testi consigliati (uno a scelta):
1. A. Silberschatz, P.B. Galvin, G. Gagne, Sistemi operativi (ottava ed.). Pearson, 2009.
2. A. Tanenbaum, I moderni sistemi operativi (terza ed.). Pearson (Prentice Hall), 2009.

Testi 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.
4. Dhananjay M. Dhamdhere "Sistemi Operativi". McGraw-Hill, 2009. ISBN 978-88-386-6487-8.

 

Come viene determinato il voto
  • Informatica:

    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.

    Per gli iscritti al vecchio ordinamento (D.M. 509/1999):
    voto= (11 x [voto teoria] + 4 x [voto laboratorio])/15

    Per gli iscritti al nuovo ordinamento (D.M. 270/2004):
    voto= (9 x [voto teoria] + 3 x [voto laboratorio])/12

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

  • T.W.M.:

    Per gli iscritti al vecchio ordinamento (D.M. 509/1999) il voto di Sistemi Operativi viene determinato secondo le regole in vigore negli anni precedenti.

    Per gli iscritti al nuovo ordinamento (D.M. 270/2004) il voto di Sistemi Operativi viene determinato dal voto di teoria (dato dalla media dei due compitini o dal voto della prova d'esame scritta).

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

  • Per tutti: una volta determinate le componenti del voto (ovvero, voto di teoria ed eventuale voto di laboratorio), la registrazione può essere effettuata anche al di fuori di un appello, se non è obbligatorio l'orale (basta inviare una mail con la richiesta a ivan.scagnetto@dimi.uniud.it).

 

Lucidi delle lezioni (formato PDF)

 

Compitino del 16/02/2011
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

Appello del 23/06/2011
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

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

 

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

 

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

 

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