Skip to main content
CODE 80169
ACADEMIC YEAR 2023/2024
CREDITS
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

The timetable for this course is available here: Portale EasyAcademy

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

Data Ora Luogo Degree type 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