OPERATING SYSTEMS

[080IN]
a.a. 2025/2026

3° Year of course - Second semester

Frequency Not mandatory

  • 6 CFU
  • 48 hours
  • Italian
  • Trieste
  • Obbligatoria
  • Standard teaching
  • Oral Exam
  • SSD ING-INF/05
Curricula: INFORMATICA
Syllabus

The goal of the course is to provide an understanding of how modern Operating Systems work, with particular focus on Linux and the Unix family in general. During the course, issues and mechanisms related to the internal functioning of Operating Systems will be explored in depth. Additionally, the mechanisms that allow users to interact with Operating Systems (System Calls and pseudo-file systems), the main commands of Linux systems, and elements of Bash programming will be studied. The topics covered will include process management, memory management, disk management, and synchronization between concurrent execution threads.

Knowledge and understanding: Understanding of how operating systems function and interact with a computer system, and in-depth knowledge of Linux.
Applied knowledge and understanding: Designing and implementing programs in a Linux environment. Resolving concurrent problems using synchronization constructs.
Judgment autonomy: Ability to make architectural choices in the design of an operating system. Selecting the best constructs and mechanisms for implementing a Linux application.
Communication skills: Ability to explain the functioning of an operating system and articulate the philosophy underlying Linux.
Learning ability: Developing the skills necessary to learn the functioning of operating systems not covered in the course (e.g., Windows) and acquiring the ability to read and comprehend documentation on Linux and its system calls, including those not covered in the course.

Confidence with C Programming and knowledge of computer architectures

The course covers the main aspects related to Operating Systems design and operation. The topics of the course are the following:
- Definitions of Operating Systems and general concepts
- Linux: history and functioning
- Bash programming
- Disk organization, file systems, and file and folder management
- Process management and System Calls
- Memory management in an operating system, and dynamic memory
- Threads: concept, usage, and synchronization
- Supplementary topics: sockets, virtualization, and package management.

A. Silberschatz, P. B. Galvin, G. Gagne, Sistemi operativi: concetti ed esempi Pearson Education, 2009
Tanenbaum Andrew S. I Moderni Sistemi Operativi, Pearson Education Italia, 2009
Kerrisk, Michael. The Linux programming interface: a Linux and UNIX system programming handbook. No Starch Press, 2010

Lectures: most of the course will be based on traditional lectures with slides and notes written on the digital whiteboard by the professor. Part of the course will cover theoretical aspects of operating systems' functioning, while other lessons will focus on the utilization of various features of Linux.
Lab activities: the course has lab activities, guided by the professor, where students will leverage the notions learned during the lectures

Written Exam: The exam aims to assess whether the student has acquired familiarity with the topics covered in class and consists of a multiple-choice test, programming exercizes and open questions
Laboratories: The student is required to submit the code developed during the laboratory activities, which is a prerequisite for taking the exam.
In any type of content produced by the student for admission to or participation in an exam (projects, reports, exercises, tests), the use of Large Language Model tools (such as ChatGPT and the like) is forbidden.
Regardless of the method of assessment, the teacher reserves the right to further investigate the student's actual contribution with an oral exam for any type of content produced.

This course explores topics closely related to one or more goals of the United Nations 2030 Agenda for Sustainable Development (SDGs)

icona 9