CODICE 80169 ANNO ACCADEMICO 2023/2024 CFU 5 cfu anno 1 ROBOTICS ENGINEERING 10635 (LM-32) - GENOVA 6 cfu anno 2 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA 6 cfu anno 1 COMPUTER ENGINEERING 11160 (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 ANTONIO SGORBISSA Commissione d'esame ANTONIO SGORBISSA (Presidente) RENATO UGO RAFFAELE ZACCARIA FULVIO MASTROGIOVANNI (Presidente Supplente) LEZIONI INIZIO LEZIONI https://courses.unige.it/11160/p/students-timetable 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 Data appello Orario 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 OpenBadge PRO3 - Soft skills - Sociale avanzato 1 - A