Operating Systems I

A.Y. 2023/2024
6
Max ECTS
60
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The course will allow the student to understand the main concepts underneath the realization of an operating system, its main functionalities and to acquire mastery in the use of the main API of the Linux operating system. In order to provide students with a better understanding of the different topics addressed, the study of the main components of an educational operating system will be addressed.
Expected learning outcomes
At the end of the course the student will be able to: identify the main features of an operating system, evaluate its criticalities and strengths, write programs that use the main operating system APIs, read and comment on the code of a real operating system.
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Responsible
Lesson period
First semester
Course syllabus
Virtualization
● Processes
● Scheduling
● Segmentation
● Paging
● Paging (TLBs)
● Paging: Smaller tables
● Beyond Physical Memory
● Beyond Physical Memory

Concurrency
● Concurrency Introduction
● Locks
● Condition Variables
● Semaphores
● Concurrency Problem

Persistence
● I/O + Disks
● Disks
● RAID
● FileSystem
● Filesystem Implementation
● Journaling

Advanced
● Virtual Machine Principles
● Side-channel attack Meltdown/Spectre
Prerequisites for admission
The prerequisites for the course include:

- Knowledge of the basic syntax of the C programming language.
- Understanding of computer system architecture, with specific reference to processor structure, memory
organization, and data types.
- Familiarity with the fundamentals of an assembly language.
Teaching methods
The theory lessons will be held in the classroom, while the laboratory lessons will take place in the lab.
Teaching Resources
Operating Systems Book: Three Easy Pieces.

You can download for free from here:

http://pages.cs.wisc.edu/~remzi/OSTEP/
Assessment methods and Criteria
The evaluation method for the course is structured as follows:

- The theoretical part consists of a written exam with numerical exercises based on the lessons covered in class.
- The laboratory part involves practical exercises based on the class exercises.
- There are no intermediate exams during the year.
- There will be 6 exam sessions for the theoretical part and 6 exam sessions for the laboratory part. The dates will
be communicated on the Ariel website under the course information section.
- The grades obtained in the Theory and Laboratory exams will be valid from January to September of the current
academic year. After that, both exams will need to be retaken.
- The final grade will be composed of 2/3 of the Theory grade and 1/3 of the Laboratory grade.
INF/01 - INFORMATICS - University credits: 6
Laboratories: 24 hours
Lessons: 36 hours
Educational website(s)
Professor(s)
Reception:
send an email to danilo[dot]bruschi[at]unimi[dot]it
Room 8011, Via Celoria 18