The course aims to train students on advanced theoretical and implementation aspects of embedded operating systems, in a distributed and real-time scenario. The main objective of the course is therefore to highlight the main differences between conventional operating systems and embedded operating systems in the field of process, memory and file system management, taking into account the typical constraints of an embedded system and its interaction with the environment.
Upon completion of the course, the students must demonstrate that they have acquired the fundamental knowledge to understand the internal organization, operation and services of the embedded operating systems. In particular, they will have knowledge on: i) the differences between a conventional operating system and an embedded operating system in a distributed and real-time scenario; ii) the strategies used by the embedded operating systems to manage the resources of the computing system; iii) the application fields of embedded operating systems.
This knowledge will allow the students to: i) develop programs with the awareness of how an embedded operating system manages processes; ii) develop applications that use primitives (called system functions) made available by particular categories of embedded operating systems; iii) develop and modify components of an embedded operating system.
At the end of the course, the students will have acquired the ability to independently assess the advantages and disadvantages of different design choices in the context of the services offered by an embedded operating system, also in a distributed and real-time environment. In addition, they will be able to: i) carry out a group laboratory project and present the results by motivating the choices with language appropriateness: ii) independently continue the study and research in the field of distributed, embedded and real time operating systems, addressing advanced issues both in the industrial and scientific fields.
1- Models of embedded systems.
2- Embedded operating systems: design principles; process, memory, and resource management.
3- Real time operating systems: design principles; resource access protocols, task scheduling.
4- Embedded and real time programming.
To pass the exam, the student must show:
- they have understood the principles related to how embedded and real-time operating systems work
- they are able to describe the concepts in a clear and exhaustive way without digressions
- they are able to apply the acquired knowledge to solve application scenarios described by means of exercises, questions and projects.
The final examination consists of a written test containing questions and exercises of both theory and laboratory.
The test is passed with a grade of at least 18/30. The maximum grade is 30/30.
A laboratory project (to be done in a group of 2/3 students) is optional and it may consist of:
- implementing/modifying one or more functionalities of an embedded or real-time operating system
- analyzying, evaluating and presenting new trends on distributed or real-time operating systems.
The maximum grande for the project is 4/30 to be added to the grade of the written examination.