REAL-TIME OPERATING SYSTEMS

REAL-TIME OPERATING SYSTEMS

_
iten
Codice
80169
ANNO ACCADEMICO
2018/2019
CFU
6 cfu al 1° anno di 8733 INGEGNERIA INFORMATICA (LM-32) GENOVA

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

SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
SEDE
GENOVA (INGEGNERIA INFORMATICA )
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

Al termine del corso un allievo che lo abbia seguito con profitto conoscera’: - problematiche relative alle applicazioni e ai sistemi operativi in tempo reale; - problematiche relative al design e alla programmazione concorrente in tempo reale; - problematiche relative alla scrittura di driver di dispositivo; - alcuni casi studio di sistemi operativi in tempo reale disponibili in commercio.

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

https://www.politecnica.unige.it/index.php/didattica-e-studenti/orario-e-calendario-delle-lezioni

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.