Operating systems

A.Y. 2020/2021
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.
Course syllabus and organization

Single session

Responsible
Lesson period
Second semester
The educational material to study the course and prepare the exam is the one adopted for the course given in presence.
The slides, the recorded lectures and the recorded laboratory activities will be made available in the Ariel platform, in the section of the course.
If the sanitary conditions will allow, lectures and laboratory activities will be offered in presence and recorded for asynchronous use. If the technological infrastructure of the classrooms will allow, the educational activities offered in presence will be made available also remotely in synchronous mode.
Otherwise, if the sanitary conditions will not allow to offer the course in presence, the course will be offered remotely and synchronously by using the platform zoom: activities will be recorded for asynchronous use. Students interested in studying faster and listening the lectures in advance with respect to synchronous delivery can use the recorded material produced in the previous academic year, which will be available in the Ariel platform of the course.
If the sanitary conditions will not allow to offer the exam in presence, the exam will be given remotely by using the platform exam.net to answer the questions and the platform zoom
for videosurveillance, as specified in the guidelines published in the Ariel platform of the course. The evaluation criteria are the same of the exam given in presence.
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.
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 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, Linux and Android. 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 entire exam is the average of the marks of the two tests, rounded up to the nearest integer. Each test is closed book.
INF/01 - INFORMATICS - University credits: 12
Laboratories: 48 hours
Lessons: 72 hours
Shifts:
Professor: Piuri Vincenzo
Turno A
Professor: Donida Labati Ruggero
Turno B
Professor: Genovese Angelo
Professor(s)
Reception:
Appointment via e-mail
Office 6002 (6 floor)