CODE 80169 ACADEMIC YEAR 2024/2025 CREDITS 5 cfu anno 1 ROBOTICS ENGINEERING 10635 (LM-32) - GENOVA 6 cfu anno 2 COMPUTER ENGINEERING 11160 (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; communicate effectively in written and oral form in a public context, adapt your communication to the context, use various sources and aids; manage your social interactions, have a collaborative attitude, and constructive communication. 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. In the second part of the course, two lessons will be dedicated to role-playing activities, in which students, divided into teams, will simulate being part of a company that produces real-time systems. They will have to identify defects in others' products and highlight the strengths of their own product, including through public presentations. 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 ANTONIO SGORBISSA Exam Board ANTONIO SGORBISSA (President) RENATO UGO RAFFAELE ZACCARIA FULVIO MASTROGIOVANNI (President Substitute) LESSONS LESSONS START https://courses.unige.it/11160/p/students-timetable 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. OpenBadge PRO3 - Soft skills - Sociale avanzato 1 - A