REAL-TIME OPERATING SYSTEMS

REAL-TIME OPERATING SYSTEMS

_
iten
Codice
80169
ANNO ACCADEMICO
2020/2021
CFU
6 cfu al 1° 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/)
  • 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

RENATO UGO RAFFAELE ZACCARIA (Presidente)

ANTONIO SGORBISSA (Presidente)

FULVIO MASTROGIOVANNI

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.