Salta al contenuto principale
CODICE 80169
ANNO ACCADEMICO 2023/2024
CFU
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

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++)

MODALITA' 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

Commissione d'esame

ANTONIO SGORBISSA (Presidente)

RENATO UGO RAFFAELE ZACCARIA

FULVIO MASTROGIOVANNI (Presidente Supplente)

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' 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.

MODALITA' 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

Dati Ora Luogo Tipologia Note
24/01/2024 09:00 GENOVA Scritto
07/02/2024 09:00 GENOVA Scritto
04/06/2024 09:00 GENOVA Scritto
11/07/2024 09:00 GENOVA Scritto
05/09/2024 09:00 GENOVA Scritto