| Politecnico di Torino | |||||||||||||||||
| Anno Accademico 2013/14 | |||||||||||||||||
| 04JEZOQ Operating systems |
|||||||||||||||||
|
Corso di Laurea Magistrale in Ingegneria Elettronica (Electronic Engineering) - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
| 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 |
|
|