Academic Year 2023-2024



Andrea Formisano
Course Year
Unit Credits
Teaching Period
Second Period
Course Type
Prerequisites. Computer Systems Architecture Programming and laboratory
Teaching Methods. Laboratory classes are taught in the computer laboratory. Hence, students have the possibility to immediately put into practice the notions introduced by the teacher.
Verification of Learning. The exam is composed of a written part and an oral part.

The written test includes multiple choice questions, questions requiring a short composition, and exercises.

See also the document

concerning the criteria adopted to assign marks.

More Information. Exercises during lab classes can be done using personal laptops running Linux operating system.
Sector-specific skills

Knowledge and understanding: the student will acquire specific knowledge about the architecture, the operation and the underlying design principles of a modern operating system. She/He will also learn how to evaluate and how to choose among several operating systems, depending on the purpose of the implementation and on the hardware features.

Applying knowledge and understanding: thanks to the lab activities, the student will get specific skills in the application of the acquired knowledge of operating systems to real case-studies.

Cross-sectoral skills/soft skills

Making judgements: the student will acquire a critical appraisal skill in appropriately selecting technologies, algorithms and solutions according to their outcome on the performance and on the correct operation of an operating system in different application contexts.

Communication skills: the student will learn how to describe an operating system using a technically correct and appropriate terminology.

Learning skills: the student will learn how to be autonomous in expanding his knowledge of operating systems beyond the notions and examples learned and analyzed during the course, discovering and exploiting connections with other courses such as computer architecture, computer networks, and distributed systems.

Theory: Introduction to Operating Systems and Computer-System Organization. OS Structures. Processes and threads. Process Scheduling. Synchronization. Deadlocks. Memory-Management. Basic notions on file system. Laboratory: Unix bash. The C language. System programming in C/UNIX: system-calls for process controll, file system, ICP
Main material:

Operating system concepts, A.Silberschatz, P.Galvin, G.Gagne. 10th edition. Wiley.

Unix for Programmers and Users. Graham Glass and King Ables, 3rd Ed., Pearson-PrenticeHall, 2003.

B.W. Kernighan, D.M. Ritchie. The C Programming Language. 2nd Ed., 1988.

Auxiliary material:

Modern Operating Systems. A.S. Tanenbaum and H. Bos. 4a Ed. Pearson. 2019.

Unix/Linux manual (man).

System programming with C and UNIX. A. Hoover, Pearson, 2010.

Unix systems programming. K.A.Robbins e S.Robbins, PrenticeHall, 2003.

J.G.Brookshear e S.G.Kochan. Fondamenti di informatica e programmazione in C. Pearson, 2014.