REAL-TIME OPERATING SYSTEMS

REAL-TIME OPERATING SYSTEMS

_
iten
Ultimo aggiornamento 30/06/2021 16:53
Codice
80169
ANNO ACCADEMICO
2021/2022
CFU
6 cfu al 2° anno di 11160 COMPUTER ENGINEERING (LM-32) GENOVA

5 CFU al 1° anno di 10635 ROBOTICS ENGINEERING (LM-32) GENOVA

SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
LINGUA
Inglese
SEDE
GENOVA (COMPUTER ENGINEERING )
periodo
1° Semestre
materiale didattico

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/)
  • 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

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.

ORARI

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

ESAMI

Modalità d'esame

La prova di esame è scritta, e richiede allo studente di risolvere problemi relativi alla progettazione di un sistema in tempo reale utilizzando gli strumenti teorici e pratici visti durante l'anno.

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.