Programma
Nuova ricerca
Stampa scheda
Sistemi Operativi 2
OPERATING SYSTEMS 2 Aldo Franco Dragoni
Sede
Ingegneria
A.A.
2016/2017
Crediti
9
Ore
72
Periodo
II
Lingua
ITA
Prerequisiti
Nessuno
Risultati di apprendimento attesi
CONOSCENZE E COMPRENSIONE:Il corso arricchisce la conoscenza dei Sistemi Operativi aggiungendo conoscenze relative ad alcune tematiche avanzate, con particolare riferimento alle problematiche relative alla schedulazione dei processi in contesti "real-time" ed alla elaborazione concorrente in contesti distribuiti (senza memoria condivisa). Da ultimo, il corso entra nel dettaglio della programmazione a livello "kernel" del Sistema Operativo Linux, essendo giustificata la scelta dal fatto che questo è il più diffuso Sistema Operativo fra quanti disponibili in modalità "open source" sotto licenza GPL.
CAPACITA' DI APPLICARE LE CONOSCENZE:Le conoscenze impartite durante il corso sono particolarmente orientate ad aspetti ingegneristici dell'informatica vicina all'hardware, cioè appunto il Sistema Operativo. Al termine del corso lo studente avrà acquisito le competenze di base per programmare applicazioni in tempo reale e distribuite; inoltre avrà imparato a sviluppare un semplice driver del kernel di Linux.
COMPETENZE TRASVERSALI:La struttura del corso ed il tipo di formazione impartita si prestano allo sviluppo di progetti che possono essere svolti in gruppi. La collaborazione alla realizzazione di un progetto contribuirà a migliorare la capacità comunicativa che deriva dal lavoro in team e lautonomia di giudizio.
Programma
Concetti generali relativi ai sistemi operativi. Il SO come gestore di risorse. Gestione della Memoria. Gestione del File System. Gestione dell'I/O. Gestione della CPU. Interrupts. DMA. Processi e threads. Comunicazione fra i processi.
Linux: una panoramica. Caratteristiche generali in un'ottica di analisi real time. Scheduling. Interrupt e sincronizzazione. Gestione della memoria
Caratteristiche e Tassonomia dei Sistemi Operativi in Tempo Reale. Definizioni e problematiche
Scenari d'impiego che richiedono il real time. RT & Embedded
Teoria dello scheduling per sistemi in tempo reale.
Processi RT e concetto di priorita'. Preemptiveness. Algoritmi (adatti al real time e non). Scenari d'applicazione e algoritmi preferibili (robotica, controllo, reti...). Sincronizzazione. Comunicazione inter-task.
Scheduling RT a periodico (EDD, EDF). Scheduling periodico. Rate Monotonic Scheduling (RMS).
Problematiche Tecniche. Priority Inversion. Metodi di coerenza: Priority Inheritance. Priority Ceiling.
Cenni sui Sistemi Distribuiti. Sistemi Multi-Agente
Modalità di svolgimento dell'esame
METODI DI VALUTAZIONE DELL'APPRENDIMENTOL'esame consiste in una prova scritta con domande ed esercizi sui temi trattati durante il corso
CRITERI DI VALUTAZIONE DELL'APPRENDIMENTOLo studente deve dimostrare di possedere una conoscenza adeguata degli algoritmo di schedulazione "real time", dei principi della programmazione distribuita e della programmazione di moduli del kernel di Linux.
CRITERI DI MISURAZIONE DELL'APPRENDIMENTOLo studente deve dimostrare di possedere una complessiva conoscenza dei contenuti con utilizzo di adeguata terminologia tecnica
CRITERI DI ATTRIBUZIONE DEL VOTO FINALEIl voto viene espresso in trentesimi
Testi consigliati
Silberschatz, Galvin, Gagne, Sistemi Operativi VI° Ed., Addison-Wesley, 2002. Giorgio C. Buttazzo, Sistemi In Tempo Reale, Pitagora Editrice Bologna 2008. Developing Multi-Agent Systems with JADE, Wiley
Corsi di laurea
- Ingegneria Informatica e dell'Automazione (Corso di Laurea Magistrale (DM 270/04))
- Ingegneria Elettronica (Corso di Laurea Magistrale (DM 270/04))