Sistemi operativi avanzati (2017/2018)

Codice insegnamento
4S00067
Docente
Graziano Pravadelli
Coordinatore
Graziano Pravadelli
crediti
6
Settore disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Lingua di erogazione
Italiano
Periodo
II sem. dal 1-mar-2018 al 15-giu-2018.

Orario lezioni

Vai all'orario delle lezioni

Obiettivi formativi

Il corso presenta gli aspetti teorici e implementativi avanzati di speciali classi di sistemi operativi, con particolare riguardo a sistemi operativi distribuiti, real-time, ed embedded. L’obiettivo principale del corso è quindi quello di evidenziare le principali differenze tra sistemi operativi convenzionali e non convenzionali nell’ambito della gestione dei processi, della memoria e del file system.

Programma

Teoria:
-------

* Introduzione: classificazione HW/SW, architettura dei sistemi operativi non convenzionali.
* Introduzione ai sistemi operativi distribuiti: obiettivi e problematiche.
* Comunicazione nei sistemi operativi distribuiti: modello client-server, chiamata a procedura remota, comunicazione di gruppo.
* Sincronizzazione nei sistemi operativi distribuiti: sincronizzazione dei clock logici e fisici, identificazione dello stato globale, mutua esclusione distribuita, transazioni atomiche, gestione dei deadlock, algoritmi di elezione.
* Gestione dei processi nei sistemi operativi distribuiti: allocazione e migrazione dei processi, algoritmi di scheduling.
* Memoria condivisa distribuita: definizione e implementazione, meccanismi di consistenza.
* File system distribuiti: modello di accesso, semantica della condivisione, implementazione, migrazione e replicazione dei dati, meccanismi di consistenza.
* Introduzione ai sistemi operativi real-time: definizione, problematiche e vincoli in ambiente real-time.
* Scheduling nei sistemi operativi real-time: scheduling per task periodici, aperiodici e misti.


Laboratorio:
------------
* Sistemi operativi embedded: Introduzione al sistema operativo eCos.
* La comunicazione nei sistemi embedded: Introduzione al protocollo di comunicazione ZigBee.
* Terminali mobili: Introduzione agli ambienti di sviluppo.
* Smartphone: Introduzione agli ambienti di sviluppo (iPhone, Android, Windows Phone)

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
G. Coulouris, J. Dollimore, T. Kindberg, G. Blair Distributed Systems. Concepts and Design. (Edizione 5) Pearson 2012 0-273-76059-9
A.S. Tanenbaum, M. Van Steen Distributed systems. Principles and paradigms. (Edizione 2) Pearson 2007 0-13-613553-6
Jane W.S. Liu Real-Time Systems (Edizione 1) Prentice Hall 2000 0-13-099651-3

Modalità d'esame

Per superare l'esame gli studenti dovranno dimostrare di:
- aver compreso i principi alla base del funzionamento di un sistema operativo distribuito e real-time
- essere in grado di esporre le proprie argomentazioni in modo preciso e organico senza divagazioni
- saper applicare le conoscenze acquisite per risolvere problemi applicativi presentati sotto forma di esercizi, domande e progetti.

L'esame consiste in una prova scritta contenente domande ed esercizi di teoria e laboratorio. La prova è superata con un voto maggiore o uguale a 18/30 e permette di ottenere un voto massimo pari a 30/30.

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
- 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 dello scritto.

Opinione studenti frequentanti - 2017/2018


Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

I dati relativi all'AA 2017/2018 non sono ancora disponibili