Facoltà di Ingegneria - Guida degli insegnamenti (Syllabus)

Programma

Nuova ricerca Nuova ricerca    Stampa scheda 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 l’autonomia 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'APPRENDIMENTO
L'esame consiste in una prova scritta con domande ed esercizi sui temi trattati durante il corso

CRITERI DI VALUTAZIONE DELL'APPRENDIMENTO
Lo 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'APPRENDIMENTO
Lo studente deve dimostrare di possedere una complessiva conoscenza dei contenuti con utilizzo di adeguata terminologia tecnica

CRITERI DI ATTRIBUZIONE DEL VOTO FINALE
Il 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))




Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427