Advanced Operating Systems (2019/2020)

Course code
Graziano Pravadelli
Academic sector
Language of instruction
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 4 II semestre Graziano Pravadelli

Go to lesson schedule

Laboratorio 2 II semestre Graziano Pravadelli

Go to lesson schedule

Learning outcomes

The course aims to train students on the theoretical and advanced implementation aspects of special classes of operating systems, with particular regard to distributed, real-time, and embedded operating systems. The main objective of the course is therefore to highlight the main differences between conventional and unconventional operating systems in the management of processes, memory and file system.

Upon completion of the course, the student must demonstrate that he/she has acquired the fundamental knowledge to understand the internal organization, operation and services of unconventional operating systems. In particular, this will include:
i) the differences between a conventional operating system and distributed, embedded and real-time operating systems;
ii) the strategies used by unconventional operating systems to manage the resources of a computer;
iii) the fields of application of non-conventional operating systems.

This knowledge will allow the student to:
i) develop programs with the awareness of how an unconventional operating system manages the resulting processes;
ii) developing applications that use primitives (system calls) made available by particular categories of embedded and real-time operating systems;
iii) developing and modifying components of an embedded and real-time operating system.

At the end of the course the student will have acquired the ability to independently evaluate the advantages and disadvantages of different design choices in the services offered by an unconventional operating system.
Moreover he/she will be able to:
i) carrying out a laboratory project and presenting its results, motivating the choices with language appropriateness:
ii) independently pursuing the study and research in the field of distributed, embedded and real-time operating systems, addressing advanced issues in both the industrial and scientific fields.


* Introduction: HW/SW classification, architecture of non conventional operating systems, goals and problems.
* Introduction to distributed operating systems: goals and problems.
* Communication in distributed systems: client-server model, remote procedure call, group communication.
* Synchronization in distributed systems: synchronization of logical and physical clocks, identification of the global state, distributed mutual exclusion, atomic transaction, deadlock management, election algorithms.
* Process management: process allocation and migration, scheduling algorithms.
* Distributed shared memory: definition and implementation, memory consistency.
* Distributed File system: access model, sharing semantics, implementation, data migration and replication, consistency mechanisms.
* Real-time operating systems: definition, objective and problems.
* Scheduling in real time operating systems: scheduling of periodic, aperiodic and mixed tasks.

* Embedded operating system: Introduction to the eCos operating system.
* Communication in embedded systems: Introduction to the ZigBee communication protocol.
* Mobile embedded systems: Introduction to development environments.
* Smartphone: Introduction to development environment (iPhone, Android, Windows Phone)

Assessment methods and criteria

To pass the exam, the student must show:
- they have understood the principles related to how distributed 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 a 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.