Salta al contenuto principale della pagina

REAL-TIME OPERATING SYSTEMS

CODE 80169
ACADEMIC YEAR 2022/2023
CREDITS
  • 6 cfu during the 1st year of 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • 6 cfu during the 2nd year of 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • 5 cfu during the 1st year of 10635 ROBOTICS ENGINEERING (LM-32) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
    LANGUAGE English
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 1° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    A real-time system is characterized by having a predictable behaviour concerning execution times. Its main characteristic is not speed, but rather guaranteeing that timing constraints are met: in particular, guaranteeing a maximum time within which computing processes will terminate. The class is aimed at presenting basic principles, methodologies, and the main tools to understand real-time operating system and the design of real-time software.

    AIMS AND CONTENT

    LEARNING OUTCOMES

    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.

    AIMS AND LEARNING OUTCOMES

    At the end of the class, the student will be able to:

    • understand problems related to real-time applications and operating systems;
    • understand how to use real-time operating systems following the Posix standard and Linux-RTAI
    • expand the acquired knowledge to understand how to use additional real-time operating systems that have not been presented in the class;
    • apply the acquired knowledge to solve problems, in particular for the design of real-time applications;
    • analyse the characteristics of state-of-the-art real-time operating systems, and categorize them on the basis of such characteristics.

    PREREQUISITES

    Basic programming skills (preferrably C/C++).

    TEACHING METHODS

    The class includes both lessons and computer exercises. Attendance is warmly encouraged, especially concerning exercises. During the semester, assignments will be given that will be evaluated for the exam.

    SYLLABUS/CONTENT

    The syllabus includes the following topics:

    • Real-time operating systems:
      • Basic principles;
      • Scheduling algorithms for periodic tasks: Rate Monotonic, Earliest Deadline First, Deadline Monotonic;
      • Scheduling algorithms for aperiodic tasks: schedulazione in background, Polling Server, Deferrable Server;
      • Protocols for access to shared resources: Priority Inheritance, Priority Ceiling;
      • Rate Monotonic on a CAN bus.
    • Soft real-time systems (Posix):
      • thread, mutex and conditional variables;
      • Rate Monotonic;
      • Background scheduling and periodic servers;
      • Interprocess communication;
    • Linux Device Drivers;
      • System calls; 
      • User and kernel space;
      • I/O and interrupt programming; 
      • Case study: a driver for the parallel port.
    • Hard real-time systems:
      • QnX, VxWorks, Windows CE;
      • RTAI: periodic and aperiodic tasks, communication mechanisms.

    RECOMMENDED READING/BIBLIOGRAPHY

    Slides will be made available on aulaweb. For a deeper investigation of the topics presented in the class, please refer to the following books or websites.

    • Buttazzo, Giorgio C.  Hard Real-time Computing Systems, Kluwer Academic publishers, 1997
    • 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/

    TEACHERS AND EXAM BOARD

    Exam Board

    ANTONIO SGORBISSA (President)

    RENATO UGO RAFFAELE ZACCARIA

    FULVIO MASTROGIOVANNI (President Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    The exam is written and requires the student to solve problems related to the design of a real-time system using the theoretical and practical tools seen during the year.

    ASSESSMENT METHODS

    The exam requires that the student is able to design, using theoretical bases and practical tools presented during lectures and during exercises, a real-time application with given characteristics. 

    Exam schedule

    Date Time Location Type Notes