Operating Systems

A.Y. 2024/2025
12
Max ECTS
120
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The course aims to provide the basic knowledge about the theoretical foundations, the algorithms, and the technologies of the overall system architecture and the management of the processor, the central memory, the input/output devices, the file system, the user interfaces, and the distributed environments in the operating systems for the main types of information processing architectures.
Expected learning outcomes
Understanding of theoretical foundations, algorithms, and technologies for the management of the processor, the central memory, the input/output devices, the file system, the user interfaces, and the distributed environments in the operating systems.
Understanding the behavior of the management of the processor, the central memory, the input/output devices, the file system, the user interfaces, and the distributed environments in the operating systems to support the optimum implementation of applications.
Understanding the configuration opportunities and the management of the processor, the central memory, the input/output devices, the file system, the user interfaces, and the distributed environments in the operating systems.
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
The course analyses and compares architectures, features, mechanisms, policies, and management of operating systems with respect to the various operating system structures and the management of the processor, the central memory, the input/output devices, the file systems, the user interface and the distributed operating systems for different information processing architectures (mono-processors, multi-processors, clusters, distributed systems, embedded systems) targeted to the main application areas (transactional systems, interactivity, multimedia, office automation, telecommunications, industrial control, robotics, embedded applications). This course is directed to deepen the competences in designing and managing operating systems, with specific reference to design techniques, configuration, and optimization.

· Operating systems architectures: kinds and structure, functional characteristics, mechanisms and policies of management.

· Virtualization of the processor: processes scheduling, allocation, static and dynamic reallocation, pipelining, deadlock, starvation; mechanisms and policies for management, for synchronization and for communication between processes; threads; real-time systems, fault tolerance, design of algorithms and data structures for processor virtualization.

· Virtualization of the main memory: storage policies; architectural support; consistency, fault and software errors tolerance, security and protection; design of algorithms and data structures for main memory virtualization.

· Virtualization of the input/output devices: management mechanisms and policies for different kinds of devices and interfaces, clock, time ordering of events in distributed systems, coordination; disks; terminals; printers; special peripherals and operating systems' support for IT networks; real-time aspects, fault and software errors tolerance, security and protection; design of algorithms and data structures for input/output device virtualization.

· Abstraction of the representation of physical and information resources: files, file system, network and distributed file system, resources identification policies; consistency, caching, backup, fault and software errors tolerance, protection and access security, design of algorithms and data structures for resources abstraction.

· User interface: kinds of interpreters and user interfaces (programmed, text, graphics, multimedia); management mechanisms and policies for user interfaces; management and access security, fault and software errors tolerance.

· Operating systems for distributed architectures: processes execution, synchronization and communication between processes, deadlock management, devices management, file system management.

· Linux, Android, MS Windows
Prerequisites for admission
Knowledge of basic concepts of computer science, computer architecture, computer programming.
Due to requirements established by the Academic Programs Committee, it is compulsory to have first passed the exam of Computer Programming.
Teaching methods
Lectures and laboratory. Attendance is not mandatory, but warmly recommended.
Teaching Resources
A. Silberschatz, G. Gagne, P.B. Galvin, Operating Systems Concepts, Wiley
or any similar book covering all topics

Slides and videorecorded lectures will be available on the course website: https://vpiuriso.ariel.ctu.unimi.it/
Assessment methods and Criteria
The exam consists of one part concerning the topics presented in the lectures and one part concerning the topics presented in the laboratory.
------
The part of the exam concerning the topics presented in the lectures consists of two written tests aimed at verifying the student's knowledge and understanding of the subject. The two tests can be taken either in the same or different exams.
The first test concerns the operating systems architectures and the virtualization of the processor. The second test concerns the virtualization of the main memory, the virtualization of the input/output devices, the abstraction of the representation of physical and information resources, the user interface, the operating systems for distributed architectures.
Each test consists of theory questions. The duration of each test is 1:45h.
The mark of each test is expressed in thirtieths and the grading will consider the correctness, completeness, and clarity of the answers to the questions. A test is not sufficient if one or more answers are not sufficient.
The final mark of the exam part concerning the topics presented in the lectures is the arithmetic average of the marks of the two tests, rounded up to the nearest integer.
------
The part of the exam concerning the topics presented in the laboratory (Linux, Android, MS Windows) is optional: if it is passed, an increment up to three points is applied to the final mark of the exam part concerning the topics presented in the lectures.
The part of the exam concerning the topics presented in the laboratory consists in a multiple-choice test.
This test can be taken during the laboratory or at the end of the two tests concerning the topics presented in the lectures.
------
The final mark of the entire exam is diven by the final mark of the part concerning the topics presented in the lectures plus the possible increment generrated by the test concerning the topics presented in the laboratory.
Each test is closed book.
The results of the tests will be notified to students by email through the university application for recording grades.
INF/01 - INFORMATICS - University credits: 12
Laboratories: 48 hours
Lessons: 72 hours
Shifts:
Turno
Professor: Piuri Vincenzo
Turno A (cognomi A-I)
Professor: Donida Labati Ruggero