REAL-TIME OPERATING SYSTEMS
5 CFU al 1° anno di 10635 ROBOTICS ENGINEERING (LM-32) GENOVA
PRESENTAZIONE
Un sistema in tempo reale ha un comportamento risulta prevedibile per quanto riguarda i tempi di esecuzione. Sua caratteristica principale non è tanto la velocità di esecuzione, quanto il garantire il rispetto dei vincoli temporali: in particolare, il garantire un tempo massimo entro cui ogni processo di elaborazione avrà termine. L'insegnamento è finalizzato alla presentazione dei principi, delle metodologie e degli strumenti fondamentali per la comprensione dei sistemi operativi in tempo reale e la progettazione di software in tempo reale.
OBIETTIVI E CONTENUTI
OBIETTIVI FORMATIVI
By attending the course, the student will learn how to deal with issues concerning real-time applications and real-time operative systems, real-time design and programming, embedded system.
OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO
Al termine dell'insegnamento, lo studente sarà in grado di:
- comprendere problematiche relative alle applicazioni e ai sistemi operativi in tempo reale;
- comprendere l'utilizzo di sistemi in tempo reale aderenti allo standard Posix e l'estensione RTAI di Linux;
- estendere le conoscenze acquisite per comprendere in autonomia l'utilizzo di nuovi sistemi in tempo reale non trattati nel corso;
- applicare le conoscenze acquisite per la risoluzione di problemi, in particolare per la realizzazione di applicazioni con requisiti di tempo-reale;
- analizzare le caratteristiche dei diversi sistemi operativi in tempo reale allo stato dell'arte, e categorizzarli in base a tale caratteristiche.
PREREQUISITI
Per affrontare i contenuti dell'insegnamento è necessario avere una conoscenza base di programmazione (preferibilmente in C/C++)
Modalità didattiche
L'attività didattica prevede lezioni frontali e esercitazioni al calcolatore su alcuni argomenti trattati nell'insegnamento. La frequenza è consigliata, soprattutto per quanto riguarda le esercitazioni. Nel corso dell'anno vengono assegnati compiti a casa, che vengono valutati in sede di esame.
PROGRAMMA/CONTENUTO
Il programma dell'insegnamento tratterà i seguenti temi:
- Sistemi operativi in tempo reale:
- principi base;
- algoritmi di schedulazione in tempo reale per task periodici: Rate Monotonic, Earliest Deadline First, Deadline Monotonic;
- algoritmi di schedulazione in tempo reale per task aperiodici: schedulazione in background, Polling Server, Deferrable Server;
- protocolli per l'accesso a risorse condivise: Priority Inheritance, Priority Ceiling;
- Rate Monotonic su CAN bus.
- Sistemi in tempo reale di tipo soft (Posix):
- thread, mutex e variabili condizionali;
- Rate Monotonic;
- schedulazione in background e server periodici;
- comunicazione interprocesso;
- Driver di dispositivo Linux;
- chiamate di sistema;
- spazio user e spazio kernel;
- I/O e programmazione di interrupt;
- caso studio: programmazione di un driver per la porta parallela.
- Sistemi in tempo reale di tipo hard:
- QnX, VxWorks, Windows CE;
- RTAI: task periodici e aperiodici; meccanismi di comunicazione.
TESTI/BIBLIOGRAFIA
Dispense dell'insegnamento verranno rese disponibili sul sito aulaweb. Lo studente che desiderasse approfondire, può trovare una trattazione degli argomenti dell'insegnamento nei seguenti testi e siti di riferimento:
- Buttazzo, Giorgio C. Sistemi in tempo reale / Giorgio C. Buttazzo 2. ed. Bologna : Pitagora, 2001
- Alessandro Rubini and Jonathan Corbet, Linux Device Drivers, Third Edition, O'Reilly and Associates, June, 2001 (available online at http://oreilly.com/openbook/linuxdrive3/book/)
- Buttazzo, Giorgio C. Sistemi in tempo reale / Giorgio C. Buttazzo 2. ed. Bologna : Pitagora, 2001
- Tom Wagner and Don Towsley, Getting Started With POSIX Threads (available online)
- https://www.rtai.org/
DOCENTI E COMMISSIONI
Ricevimento: Il docente riceve su appuntamento, previo accordo al termine della lezione o via email: antonio.sgorbissa@unige.it
Commissione d'esame
ANTONIO SGORBISSA (Presidente)
RENATO UGO RAFFAELE ZACCARIA
FULVIO MASTROGIOVANNI (Presidente Supplente)
LEZIONI
Modalità didattiche
L'attività didattica prevede lezioni frontali e esercitazioni al calcolatore su alcuni argomenti trattati nell'insegnamento. La frequenza è consigliata, soprattutto per quanto riguarda le esercitazioni. Nel corso dell'anno vengono assegnati compiti a casa, che vengono valutati in sede di esame.
INIZIO LEZIONI
17 Settembre 2020
ESAMI
Modalità d'esame
Scritto
Modalità di accertamento
L'esame prevede che lo studente sia in grado di affrontare, utilizzando le basi teoriche e gli strumenti di programmazione appresi durante le lezioni e le esercitazioni, la progettazione di un'applicazione in tempo reale con caratteristiche date.
Calendario appelli
Data | Ora | Luogo | Tipologia | Note |
---|---|---|---|---|
07/06/2021 | 09:00 | GENOVA | Scritto | JEMARO students must attend this exam on: February 10th, 2021 |
15/07/2021 | 09:00 | GENOVA | Scritto | JEMARO students must attend this exam on: February 10th, 2021 |
01/09/2021 | 09:00 | GENOVA | Scritto | JEMARO students must attend this exam on: February 10th, 2021 |