Alberto Castellini
LABORATORY OF OPERATING SYSTEMS (2019/2020) (official webpage)
Bachelor's degree in computer science, Verona University

Syllabus

Shell programming in Unix/Linux. Introduction to the system programming in Unix/Linux. System calls for I/O. System calls for process management. System calls and techniques for inter-process communication and synchronization (pipe, fifo, message queue, share memory, semaphores, ...).

Learning outcomes

The course aims to provide an introduction to the principles and design of operating systems, with particular regard to the concepts related to the software architectures of an operating system, the management and synchronization of processes and the management of the resources of the system. At the end of the course, the student will have acquired knowledge and skills related to the internal organization, operation and services of an operating system. In particular, the student will have learned: the main functionalities of an operating system with respect to users and application programs; the strategies adopted by an operating system to manage the resources of a computer; the techniques used to implement the different components of an operating system. Furthermore, the student will be able to apply the acquired knowledge and will have adequate comprehension skills for: developing programs with the awareness of how the operating system manages the resulting processes; developing applications that use the primitives (system calls) provided by the operating system; developing and modifying components of an operating system. Finally, the student will be able to: autonomously evaluate the advantages and disadvantages of different design choices within the services offered by an operating system; carry out a laboratory project and present the relative results motivating the choices with language appropriateness; develop the necessary skills to continue the study related to operating systems, addressing advanced issues related to the scenarios of distributed, real time and embedded systems.

Reference books

A. Silberschatz, P.B. Galvin, G. Gagne. Sistemi operativi. Concetti ed esempi. (Edizione 9). Pearson, 2014.