en
Politecnico di Torino
Anno Accademico 2017/18
02NPSOV
Operating systems for embedded systems
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Violante Massimo ORARIO RICEVIMENTO AC IINF-05/A 60 0 20 0 17
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 B - Caratterizzanti Ingegneria informatica
Presentazione
Il corso è erogato in Inglese.

Insegnamento della Laurea Magistrale in Computer Engineering, Orientamento Sistemi Embedded, ed insegnamento opzionale per il corso di laurea Magistrale in Meccatronica.
L’insegnamento ha lo scopo di approfondire i concetti dei Sistemi Operativi, descrivendo le peculiarità dei sistemi embedded, degli strumenti di sviluppo ad essi dedicati, ed illustrando le peculiarità di alcuni sistemi operativi per sistemi embedded particolarmente rappresentativi, nello specifico: schedulatore di processi, VxWorks, Micrium mC/OS, Linux. Il corso approfondirà inoltre i concetti di sistemi embedded in tempo reale, e le problematiche di comunicazione con dispositivi hardware dedicati.
Risultati di apprendimento attesi
- Concetto di sistema embedded.
- Comprensione degli strumenti di sviluppo per sistemi embedded: cross-compiler, emulatore, strumenti di debug, di profiling, di virtualizzazione.
- Concetto di sistema embedded in tempo reale.
- Comprensione di esempi di sistemi operativi per sistemi embedded.
- Capacità di sviluppo di moduli per la comunicazione con dispositivi hardware dedicati.
Prerequisiti / Conoscenze pregresse
Capacità di sviluppare programmi in linguaggio C.
Conoscenza dell'architettura dei sistemi di elaborazione: in particolare struttura del processore e organizzazione della memoria.
Conoscenza del meccanismo di interruzione e dei fondamenti di un linguaggio Assembler.
Programma
Programma comune al corso per ing. Informatica e Meccatronica

Introduzione ai Sistemi Embedded (0.5 crediti)
- Classificazione e peculiarità rispetto sistemi desktop.

Strumenti di sviluppo (0.5 crediti)
- Cross-compiler.
- Emulatore.
- Debugger.
- Profiler.
- Piattaforma di virtualizzazione.

Sistemi Operativi per Sistemi Embedded (4 crediti)
- Vincoli di tempo reale e schedulazione dei processi.
- Analisi dell'architettura e dei servizi offerti da sistemi operativi per sistemi embedded: schedulatore di processi, VxWorks, Micrium mC/OS, Linux.
- Anatomia dettagliata di un sistema operativo per sistemi embedded

Programmazione di un sistema operativo Micrium mC/OS per sistemi embedded (1 crediti):
- Gestione dell'I/O, e device driver.
- Uso di una evaluation board.
- Costruzione di un sistema operativo per un sistema embedded: uso degli strumenti di sviluppo.
- Progetto, e sviluppo di device driver per periferiche non standard.

Strumenti avanzati per il debug ed il profiling di sistemi embedded (1 credito)

Programmazione di un sistema operativo Linux per sistemi embedded (1 credito):
- bootloader
- kernel
- root file system
- Il sistema di build Yocto per la realizzazione di distributioni Linux embedded
Organizzazione dell'insegnamento
Il corso è organizzato in lezioni frontali ed esercitazioni in aula, nonché di esercitazioni di laboratorio.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Lucidi delle lezioni forniti dal docente.

C. Hallinan
Embedded Linux Primer: A Practical Real-World Approach
Prentice-Hall, 2006, ISBN-10: 0-13-167984-8

S. Venkateswaran
Essential Linux Device Drivers
Prentice-Hall, 2008, ISBN-10: 0-13-239655-6

A. Berger
Embedded Systems Design: An Introduction to Processes, Tools and Techniques
CMP Books, 2001, ISBN-10: 1-57-820073-3

Silbershatz A., Galvin. P., Gagne G.
Operating Systems
8th Edition, Wiley, 2009, ISBN: 978-0-470-12872-5
Criteri, regole e procedure per l'esame
L’esame è composta da due prove:
1. Esame di teoria: esame scritto della durata di 60 minuti, senza l’ausilio di materiale didattico, composto da domande a risposta aperta sugli argomenti del corso, ed esercizi che richiedono l’applicazione dei concetti presentati a lezione su esempi numerici. La valutazione massima per questa prova è 33/30.
2. Esame di programmazione 1: Esame scritto della durata di 45 minuti, con l’ausilio di materiale didattico, che richiede la realizzazione di un programma per il sistema operativo Micrium mC/OS. Questa prova può essere sostenuta mediante lo svolgimento di un progetto individuale di laboratorio proposto durante il corso e da consegnare entro la fine del periodo didattico. La valutazione massima per questa prova è 33/30.

Esame di programmazione 2: Esame scritto della durata di 45 minuti, con l’ausilio di materiale didattico, con domande sulla tematica del debug e profiling di sistemi embedded, e su Linux embedded. Questa prova può essere sostenuta mediante lo svolgimento di un progetto individuale di laboratorio proposto durante il corso e da consegnare entro la fine del periodo didattico. La valutazione massima per questa prova è 33/30.
Non è prevista la prova orale.

I criteri per l’attribuzione del voto finale sono i seguenti:
• il voto è ottenuto pesando al 70% l’esame di teoria, al 20% l’esame di programmazione 1, al 10% l’esame di programmazione 2. Nel caso in cui il voto finale sia 33/30, sarà registrato come 30L.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2017/18
Indietro