Advances in operating systems

A.Y. 2021/2022
Overall hours
Learning objectives
The purpose of this course is to allow the student to understand and be able to manage the mechanisms underlying the operation and implementation of an operating system: levels of abstraction, synchronous / asynchronous event management, clock management, peripheral management, communication, concurrency primitives, management and communication between processes, security of hardware components.
The "theoretical" exposure of the various topics will be accompanied by laboratory lessons during which students will have the opportunity to experience the concepts acquired on a commercial micro controller (STM32 Nucleo) made available to students, for the duration of the course only, by the ST Microelectronics company.
The laboratory lessons will also represent an opportunity for students to:
deepen C programming, learn how to use an integrated development environment for a commercial embedded system, master the FreeRTOS operating system.
Expected learning outcomes
1. Understanding of the main mechanisms underlying an operating system.
2. Understanding of the operating mechanisms of an embedded system.
3. Managing the FreeRTOS operating system
4. Designing and implementing a driver for I / O management
5. Understanding and modifying an interrupt handler
6. Design and implementing a real-time scheduler
7. Designing and implementing a sensor based application with the use of the STM32
8. Understanding side channel attacks
9. Perform elementary side channel attacks
Course syllabus and organization

Single session

Lesson period
Second semester
Course syllabus
During the course the following topics will be addressed:
- architectures and components of embedded systems
- the micro controller STM32
- hardware-software interfaces
- memory architecture
- software design methodology
- communication primitives
- embedded operating systems
- real-time scheduling
- shared resources
- low consumption and low energy consumption design,
- synthesis of the hardware architecture
- Side channel attacks.

The laboratory topics covered will be:
A. The STM32 micro controller
B. Bare Metal programming
C. The management of the UART interface (polling and interrupt)
C1. The management of the SPI interface (optional)
D. Interrupt management and DMA
E. The use of FreeRTOS
F. The management of task scheduling
G. Writing applications with FreeRTOS
Prerequisites for admission
Knowledge of the C language can speed-up the comprehension of some of the arguments which will be treated in the course.
Teaching methods
The teaching will be carried out in the presence, the lessons will alternate the theory part with the laboratory activity.
The laboratory part will be carried out with the aid of an STM32 micro controller based on an ARM Cortex-M processor, and related development environment. The micro controller will be made available to students, who must undertake to return it intact at the end of the course. As the laboratory activity will take place in the classroom, students must be equipped with a PC on which the development environment for the micro controller must be installed.
There will also be seminars and interventions by experts from the world of work and research.
Teaching Resources
Ed­ward A. Lee and Sanjit A. Se­shia: In­tro­duc­tion to Em­bed­ded Sys­tems, A Cyber-​Physical Sys­tems Ap­proach, Second Edi­tion, MIT Press, ISBN 978-​0-262-53381-2, 2017.

C. Noviello: Mastering STM32, (
Assessment methods and Criteria
The final exam will consist of the development of a project that can be carried out in groups of at most 2 people.
The project will consist of a feasibility study as well as the practical realization of a system "driven" by an STM32 board or other micro controller chosen by the student. The project can be carried out both in bare programming or with the support of FreeRTOS.
The project will be evaluated following the following criteria:
10 points for the originality of the project
15 points for the complexity in terms of code size and implementation difficulties that had to be overcome
5 points completeness of the documentation presented to support the project
3 points effectiveness of the project exposure
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
send an email to danilo[dot]bruschi[at]unimi[dot]it
Room P115, Via Comelico