en
Politecnico di Torino
Anno Accademico 2013/14
04JEZOQ
Operating systems
Corso di Laurea Magistrale in Ingegneria Elettronica (Electronic Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Benso Alfredo ORARIO RICEVIMENTO O2 IINF-05/A 40 20 0 0 4
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 D - A scelta dello studente A scelta dello studente
Esclusioni:
01OBD; 01NOS; 01PDB; 01NYD; 02LPO; 01NVT
Presentazione
L'insegnamento e' tenuto in lingua Inglese.
Corso obbligatorio della Laurea Magistrale in Electronic Engineering, Orientamento Sistemi Embedded, collocato al II periodo didattico del I anno.
Il modulo ha lo scopo di introdurre gli elementi di base dell¿architettura dei sistemi operativi e di discutere la peculiarità dei sistemi operativi per sistemi embedded, e gli strumenti di sviluppo ad essi dedicati. 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
- Conoscenza della classificazione dei Sistemi Operativi: Batch, Interattivi, Real-time, Macchine virtuali.
- Conoscenza dell¿architettura dei sistemi operativi come gestore di risorse.
- Conoscenza dell¿organizzazione del kernel di un sistema operativo.
- Conoscenza e capacita' di gestione dei processi e thread d'esecuzione concorrenti.
- Concetto di sistema embedded.
- Saper usare li strumenti di sviluppo per sistemi embedded: cross-compiler, emulatore, strumenti di debug, di profiling, di virtualizzazione.
- Concetto di sistema embedded in tempo reale.
- 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
Architettura di un Sistema Operativo (0,5 CFU)
- Classificazione dei sistemi operativi
- Struttura di un sistema operativo, risorse gestite e moduli corrispondenti
- Il Kernel: possibili organizzazioni

Processi e Thread (2 CFU)
- Definizione di processo e tipi di processi
- Processi concorrenti
- Gestione dei processi
- Algoritmi di schedulazione
- Sincronizzazione di processi e primitive semaforiche
- Inter-Process Communication
- Il problema del deadlock

Gestione dei dischi, della memoria, virtualizzazione, device drivers (0,5 CFU)
- organizzazione del file systems
- Paginazione
- Virtualizzazione della memoria

Sistemi Embedded (1 CFU)
- Classificazione e peculiarità rispetto sistemi desktop
- Cenni su sistemi Real Time
- Sistemi di sviluppo per Sistemi Embedded
- Problematiche nella progettazione di Device-Drivers
Organizzazione dell'insegnamento
- Installazione di una distribuzione Linux su macchina virtuale (0,5 CFU)
- Multiprogramming (1,5 CFU)
- Applicazioni Multi process and multi-thread
- Problemi di sicronizzazione di applicazioni Multiprocess/Threads
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
I testi, scelti tra quelli elencati, saranno comunicati a lezione dal docente titolare dell'insegnamento.

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.
Sistemi Operativi. Concetti ed Esempi
8^ Edizione, Pearson Education Italia, 2009, ISBN-10: 8-87-192233-6
Criteri, regole e procedure per l'esame
Voto finale = 0,5 * Teoria + 0,5 * Progetto

Teoria:
- domande aperte e/o a risposta multipla

Progetto di programmazione:
- stesso progetto per tutti gli studenti
- sarà assegnato un progetto diverso per ogni sessione di esame e il testo sarà fornito 2-3 settimane prima della sessione
- Lo student dovrà consegnare un codice funzionante e un report
- La discussion avverrà di fronte a un PC dove lo student dovrà:
– Compilare il software
– Eseguire il sofware
– Essere in grado di spiegare qualunque pezzo di codice scelto a caso dal docente
– Essere in grado di discutere possibili ottimizzazioni e/o modifiche al codice
- Discutere i risultati e il report
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2013/14
Indietro