Sistemi operativi avanzati (2008/2009)

Corso a esaurimento

Codice insegnamento
4S00067
Crediti
5
Coordinatore
Graziano Pravadelli
L'insegnamento è organizzato come segue:
Modulo Crediti Settore disciplinare Periodo Docenti
Teoria 4 ING-INF/05-SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI 2° Q Graziano Pravadelli
Laboratorio 1 ING-INF/05-SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI 2° Q Graziano Pravadelli

Obiettivi formativi

Modulo: Teoria
-------
Il corso presenta gli aspetti teorici e implementativi avanzati di speciali classi di sistemi operativi, con particolare riguardo a sistemi operativi distribuiti e sistemi operativi real-time. Tali aspetti verranno approfonditi con esercitazioni pratiche di laboratorio.
Il corso viene svolto in 44 ore tra lezioni (32 ore) ed esercitazioni in laboratorio (12 ore), distribuite in un unico periodo didattico.
Il materiale didattico verrà distribuito dal docente sotto forma di dispense e articoli.


Modulo: Laboratorio
-------
Il corso è costituito da 12 ore di esercitazioni pratiche in laboratorio riguardanti problematiche legate alla programmazione su cluster e su sistemi operativi embedded.

Programma

Modulo: Teoria
-------
* Introduzione:
- Classi di sistemi operativi non convenzionali
° sistemi operativi distribuiti
° sistemi operativi multiprocessore
° sistemi real-time
° sistemi operativi embedded
- Strutture di sistemi operativi non convenzionali
° microkernel
° exokernel
° cluster
- Esempi di sistemi operativi dei vari tipi

* Sistemi Operativi Distribuiti:
- Problematiche
- Architetture HW e SW
- Metriche di progetto (trasparenza, flessibilità, affidabilità, scalabilità)
- La comunicazione nei sistemi distribuiti
° protocolli
° modello client-server

* La sincronizzazione nei sistemi distribuiti:
- Sincronizzazione dei clock
- Mutua esclusione e transazioni atomiche
- Deadlock

* Gestione dei processi nei sistemi distribuiti:
- Allocazione dei processi
- Migrazione dei processi
- Scheduling dei processi

* File system distribuiti:
- Problematiche ed implementazione
- Naming e caching
- Caso di studio: NFS

* Memoria Condivisa Distribuita:
- Modello concettuale
- Implementazioni
- Problema della consistenza e relativi modelli

*Sistemi operativi real-time
- Problematiche e vincoli
° determinismo
° reattività
° affidabilità
- Esempi di sistemi real-time

* Scheduling nei sistemi operativi real-time:
- Concetto di clock, deadline, e timeout
- Scheduling a priorità
- Deadline scheduling
- Scheduling di task aperiodi e periodici


Modulo: Laboratorio
-------
* Esercitazioni di laboratorio:
- Programmazione distribuita su cluster
- Implementazione di alcune funzionalità su un sistema operativo embedded open source

Modalità d'esame

Modulo: Teoria
-------
L'esame consiste in una prova scritta (orale) contenente domande teoriche ed esercizi. La prova è superata con un voto maggiore o uguale a 18/30 e permette di ottenere un voto massimo pari a 30/30. L'orale è facoltativo.

Modulo: Laboratorio
-------
L'esame consiste in una prova scritta (orale) contenente domande teoriche ed esercizi e viene svolta contestualmente alla prova di teoria.

E' possibile, ma non obbligatorio, realizzare un progetto pratico (a gruppi di 2/3 persone) che può consistere in:
- implementazione/modifica di una o più funzionalità di un sistema operativo real-time
- implementazione di una applicazione per cluster di computer
- analisi, valutazione e presentazione di nuove tecnologie nell'ambito di sistemi operativi distribuiti o real-time.
Il progetto permette di ottenere al massimo 4/30 punti da sommare al voto della prova di teoria.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
A.Tanenbaum Disitributed Operating Systems Prentice Hall 1994 0132199084
Giorgio Buttazzo "HARD REAL-TIME COMPUTING SYSTEMS: Predictable Scheduling Algorithms and Applications", Kluwer Academic Publishers 1997
W. Stallings Operating Systems - Internal and Design Principles (Edizione 3) Prentice Hall 1998 0138874077
Condividi