Home Page

 

Corso di Sistemi Operativi A.A. 2012/2013
(Informatica e TWM)

 

 

Informazioni su compitini ed appelli
Nel primo appello d'esame (20 giugno 2013) sarà possibile effettuare una delle seguenti scelte:
  1. svolgere il secondo compitino (argomenti: dalla gestione della memoria in poi, ovvero, fino al filesystem compreso);
  2. svolgere il compito completo (su tutti gli argomenti del corso).
Nel secondo appello d'esame (9 luglio 2013) sarà possibile effettuare una delle seguenti scelte:
  1. svolgere il primo compitino (argomenti: fino alla gestione della memoria esclusa);
  2. svolgere il secondo compitino (argomenti: dalla gestione della memoria 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 19/04/2013.

 

 

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.
 

 

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.

    Importante: per accedere all'orale è necessario conoscere (oltre al voto di teoria) l'esito della valutazione dei progetti di laboratorio in modo da determinare il voto di partenza della prova orale stessa.

  • 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 04/02/2013
Si considera superato lo scritto se il proprio voto è maggiore o uguale a 15.

 

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

 

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

 

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

 

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