Corso di Laurea in Informatica

Sistemi Operativi 2004/2005

Marco Comini e Marina Lenisa

pagina aggiornata il 7-04-2006

Indice

Descrizione del corso
Programma
Bibliografia e altro materiale didattico
Esami

Descrizione del corso

I sistemi operativi sono parte essenziale di un sistema di calcolo. Nella maggior parte dei casi, essi implementano la vera piattaforma sulla quale si svolge tutta l'attività di analisi, sviluppo, implementazione ed esecuzione dei sistemi software, incapsulando ed astraendo dal sistema hardware sottostante.
È pertanto necessario che uno studente di Informatica possieda le basi per comprendere le principali problematiche relative all'efficace utilizzo (da utente, da progettista, da programmatore, da amministratore) di un sistema operativo moderno.
Allo scopo di fornire tali basi, durante il corso verranno discussi alcuni concetti fondamentali relativi ai sistemi operativi e alle loro funzionalità primarie (gestione dei processori, della memoria e dei dispositivi di ingresso/uscita).
Inoltre un moderno informatico non può non conoscere tecniche di programmazione concorrente, e gli aspetti concernenti il calcolo parallelo e distribuito.

I concetti generali previsti per il corso, ampliamente coperti dal materiale bibliografico consigliato, verranno discussi a lezione in maniera relativamente indipendente da specifici sistemi operativi. Essi saranno comunque esemplificati facendo riferimento a comuni sistemi operativi (Unix, Linux, Windows 2000, etc.)

Parallelamente, il corso complementare di Laboratorio di Sistemi Operativi offre l'opportunità allo studente di mettere in pratica le nozioni apprese e di verificarne la comprensione. Inoltre tale corso offrirà le nozioni di base relative all'uso di linguaggi di scripting, della programmazione di sistema e della programmazione distribuita.
Allo studente, oltre che capire ed imparare quanto suggerito a lezione, verrà chiesto di svolgere alcuni progetti. Condizione necessaria per sostenere l'esame di Sistemi Operativi è lo svolgimento dei progetti obbligatori del corso di Laboratorio.

Programma definitivo

  1. Aspetti generali
  2. Processi e Thread
  3. Programmazione concorrente
  4. Gestione della memoria
  5. Input/Output
  6. Il file system
  7. Sistemi con processori multipli
  8. Protezione e Sicurezza

Bibliografia

Testi consigliati

I due testi migliori per questo corso sono i seguenti:
  1. A. Silberschatz, P.B. Galvin, G. Gagne, Sistemi operativi (sesta ed.). Addison-Wesley, 2002. ISBN 88-7192-140-2.
  2. A. Tanenbaum, Modern Operating Systems (II ed.). Prentice Hall, 2001. ISBN 0-13-031358-0.
Sono entrambi eccellenti, ma in parte complementari: ci sono aspetti trattati meglio in uno che nell'altro, e viceversa. Per questo è essenziale integrare ognuno dei testi precedenti con appunti presi a lezione e il seguente materiale:
  1. Trasparenze usate in aula, per la prima parte di corso (tenuta da Marina Lenisa)
  2. Trasparenze usate in aula, per la seconda parte di corso (tenuta da me) (ancora in fase di completamento, provvisoriamente utilizzare quelle di Marino Miculan)
  3. Trasparenze usate in aula, per la terza parte di corso (tenuta da me)
  4. Cronologia di Unix

Testi di consultazione

  1. Distributed Systems, A. Tanenbaum, M.R. Van Steen. Prentice Hall, 2002.
    Il naturale completamento in ambito distribuito del testo precedente.
  2. UNIX for Programmers and Users, seconda edizione. Graham Glass, King Ables. Prentice-Hall, 1999.
    Specialmente il capitolo 13, sugli internal di Unix.
  3. Unix system programming, Keith Haviland, Dina Gray, Ben Salama, seconda edizione. Addison Wesley, 1998. ISBN: 0-201-87758-9.
    Buon libro di programmazione, ricco di esempi. Non tratta i threads.

Modalità d'esame

L'esame di Sistemi Operativi si compone di una prova scritta, di una prova di laboratorio, ed (eventualmente) di una prova orale (soprattutto per discriminare le situazioni "di confine" o, in ogni caso, "sospette" e/o dare la possibilità di alzare il voto rispetto a quanto determinato da scritto e laboratorio).

Prova Scritta:
La prova scritta richiede di: La prova scritta può essere sostenuta anche se non si è ancora sostenuta la prova di laboratorio e viceversa. Durante il corso, verranno svolti 2 compitini. Gli studenti che superano positivamente i compitini vengono esonerati dalla prova scritta. La prova scritta mantiene la sua validità per un anno, ossia una volta superato lo scritto lo studente ha un anno di tempo per completare l'esame sostenendo le rimanenti prove.
Ad ogni scritto (e ad ogni compitino) agli studenti verranno consegnati 2 possibili testi d'esame e verranno dati 5 minuti per scegliere la prova che intenderanno sostenere fra: Ovviamente il voto ottenibile con le due prove non è il medesimo. In particolare i voti ottenibili con una prova Basic o Advanced sono, rispettivamente, all'interno del range 16-22 o 23-30+. Si considereranno valide solo le prove sostenute per cui si è ottenuto un voto all'interno del range previsto. In particolare una prova Advanced che non ottenga almeno 23 non sarà considerata valida.
Ogni volta che si consegna per la correzione una prova scritta si cancella ogni eventuale voto ottenuto su prove corrispondenti (primo compitino, secondo compitino, scritto completo; quest'ultimo cancella pure i compitini)
Prova di Laboratorio:
Per informazioni sulle modalità della prova di laboratorio si consultino le istruzioni sulla relativa pagina del corso di Laboratorio di Sistemi Operativi.
Prova Orale (se necessaria) e Registrazione Voto Esame:
La prova orale consiste nella discussione di alcuni degli argomenti trattati a lezione. Per poter sostenere la prova orale o registrare il voto dell'esame (se la prova orale non fosse necessaria), è necessario:
Iscrizioni Necessarie:
Si ricorda che sia per potersi presentare alle prova scritta che a quella orale è necessaria l'iscrizione elettronica (mediante il sito www.sindy.uniud.it).

Esami passati

Potete inoltre scaricare in formato elettronico (parte dei) testi e/o soluzioni dei compiti passati:

  1. testo e (parziali) soluzioni del compito del 2005/09/21 advanced e basic
  2. testo e (parziali) soluzioni del compito del 2005/09/02 advanced e basic
  3. testo e (parziali) soluzioni del compito del 2005/07/07 advanced e basic
  4. testo e soluzioni del secondo compitino del 2005/03/18 advanced e basic
  5. testo e soluzioni del primo compitino del 2005/04/06 advanced e basic
  6. testo e soluzioni del secondo compitino del 2005/04/06 advanced e basic