Program Overview
OPERATING SYSTEMS
Course Overview
The course provides an introduction to the structure and organization of modern operating systems.
Aims and Content
Learning Outcomes
This teaching unit introduces the structure of operating systems, the functions of the modules they are organized into, and the algorithms and software structures used.
Aims and Learning Outcomes
The course provides students with the fundamental notions about the structure of operating systems. The course also provides students with the technical and methodological tools to understand, critically analyze, and describe the characteristics, functions, and interactions of the main components of modern operating systems. At the end of the course, students will also be able to use the command line interface of the Linux operating system and write simple programs (scripts) for the automation of operating system management activities.
Prerequisites
- Ability to write and analyze programs, including familiarity with the C programming language
- Knowledge of the components and structure of Computers
Teaching Methods
Teaching will be carried out with traditional lectures as well as with the development of problems and practical exercises. Students will be given access to handouts (slides) and texts of past assessments.
Syllabus/Content
- Introduction to the structure of operating systems. Basic concepts, monolithic and microkernel structure.
- Process and thread management. Process creation and management. Threads and their implementation.
- Inter-Process Communication (signal, pipe, socket, shared memory, ...). Mutual exclusion and synchronization. Dekker's algorithm, Peterson's algorithm. Hardware support for mutual exclusion. The Producer and Consumer Problem. The traffic lights. The monitors. Message Passing. The Readers and Consumers Problem.
- Deadlock and Starvation. Approaches to deadlock management: Detection, Prevention, and Avoidance. Resource allocation graphs. The Dining Philosophers Problem.
- Memory management. Physical memory and virtual memory. Paged management and its implementation problems. Segmented management.
- Uniprocessor scheduling. Long, medium, and short-term scheduling. Scheduling algorithms: FCFC, Round Robin, SPN, SRT, HRRN, Feedback.
- Input-output Management. CPU-device-memory interaction. DMA architecture. Disk scheduling.
- The file system. Structure and attributes of files and directories. File system implementation and optimization methods.
- Access Control. Access control models, policies, and mechanisms. Access Control in Linux (ACL in Unix)
Recommended Reading/Bibliography
- Teaching material (slides and exercises) are available on AulaWeb.
- Operating Systems: Internals and Design Principles. 8th edition by W. Stallings, Pearson
Teachers and Exam Board
Teacher
ANTONIO SGORBISSA
Exam Board
- FABIO ROLI (President)
- LUCA DEMETRIO (President Substitute)
- ANTONIO SGORBISSA (President Substitute)
Lessons
Class Schedule
OPERATING SYSTEMS
Exams
Exam Description
Written exam based on open-ended questions.
Assessment Methods
The written test will assess:
- The understanding of the operation and interdependence of the main features offered by a modern operating system,
- The ability to critically evaluate the characteristics of the various solutions to classical operating system problems (e.g., memory management, scheduling, process synchronization),
- The ability to solve problems related to the design and use of operating systems.
Exam Schedule
| Exam Date | Time | Location | Degree Type | Notes |
|---|---|---|---|---|
| 13/01/2026 | 09:00 | GENOVA | Scritto | |
| 27/01/2026 | 09:00 | GENOVA | Scritto | |
| 13/02/2026 | 09:00 | GENOVA | Scritto | |
| 10/06/2026 | 09:00 | GENOVA | Scritto | |
| 29/06/2026 | 09:00 | GENOVA | Scritto | |
| 23/07/2026 | 09:00 | GENOVA | Scritto | |
| 14/09/2026 | 09:00 | GENOVA | Scritto |
Agenda 2030 - Sustainable Development Goals
- Quality education
- Gender equality
- Decent work and economic growth
- Industry, innovation, and infrastructure
