Salta al contenuto principale della pagina

REAL-TIME OPERATING SYSTEMS

CODICE 80169
ANNO ACCADEMICO 2022/2023
CFU
  • 6 cfu al 1° anno di 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • 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
  • 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

    LEZIONI

    Orari delle lezioni

    L'orario di tutti gli insegnamenti è consultabile su 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

    Data Ora Luogo Tipologia Note