Corso di Sistemi Operativi e Laboratorio

Laurea in Informatica
A.A. 2018/2019

docenti: Marina Lenisa, Ivan Scagnetto



Orario delle lezioni:

giovedi 8.30-10.30 (aula F) e venerdi 8.30-10.30 (aula I)

Indice

Descrizione del corso
Programma
Bibliografia

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 verranno illustrate 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, etc.)

Parallelamente, il corso 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.

Programma

  1. Aspetti generali
  2. Processi e Thread
  3. Programmazione concorrente
  4. Gestione della memoria
  5. Input/Output
  6. Il file system

Bibliografia

Testi consigliati

  1. A. Silberschatz, P.B. Galvin, G. Gagne, Sistemi operativi (nona ed.). Pearson, 2014
  2. A. Tanenbaum, H. BosI moderni sistemi operativi (quarta ed.). Pearson (Prentice Hall), 2016.

Si consiglia di integrare i testi precedenti con appunti presi a lezione e le seguenti trasparenze usate in aula:

  1. Introduzione, evoluzione, tipi di sistemi operativi
  2. Richiami di hardware
  3. Componenti, servizi e strutture dei S.O.
  4. Processi e Thread
  5. Scheduling di breve termine
  6. Processi cooperanti
  7. Deadlock
  8. Gestione della memoria
  9. Memoria virtuale
  10. Le restanti trasparenze sono disponibili sul sito dott. Ivan Scagnetto.


Modalità di esame


Scritto + laboratorio + eventuale esame orale. Sia l'esame scritto che quello di laboratorio si considerano superati con un voto maggiore o uguale a 15. L'esame orale è obbligatorio se la media pesata con i crediti dei voti dello scritto (9 CFU) e del laboratorio (3 CFU) è maggiore o uguale a 15 ma inferiore a 18, cioè 15 ≤ (9*vs + 3*vl)/12 < 18, dove vs indica il voto dello scritto e vl il voto del laboratorio.

Esame scritto:

C'è la possibilità di sostenere l'esame scritto in 2 parti: I prova (febbraio), II prova (giugno, I appello della sessione estiva). Per chi non superasse una delle due prove, c'è la possibilità di un recupero a luglio (II appello della sessione estiva). In alternativa, si può sostenere l'esame completo a partire da giugno. Da settembre si può sostenere solo l'esame completo.