Operating Systems
A.Y. 2026/2027
Learning objectives
The course introduces the fundamental concepts of operating systems, defining their role within the architecture of a computer system, their main functionalities, and well-known structures (e.g., monolithic, micro-kernel). Various topics will be covered, such as process management, memory management, and file systems, with lectures aimed at understanding the general operation of a modern operating system.
Expected learning outcomes
By the end of the course, students will have acquired a deeper understanding of the internal workings of modern operating systems and their fundamental mechanisms. This knowledge will provide students with various skills. First, students will use operating systems more consciously and efficiently. Additionally, they will also be able to better interpret the behavior of an operating system in order to make more informed decisions in the practical use of computer systems.
Lesson period: Second semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course can be attended as a single course.
Course syllabus and organization
Single session
Responsible
Lesson period
Second semester
Course syllabus
1. Basic Concepts of Operating Systems
- The roles of the Operating System: extended machine and resource manager
- User Mode and Kernel Mode
- History of Operating Systems
- Types of Operating Systems
- System Calls
- Main Operating System Architectures
- Bootstrapping an Operating System
2. Processes
- Difference between a program and a process
- Multiprogramming in Operating Systems
- Process creation and termination
- Process states
- Process table
- Context switch
- I/O-bound and CPU-bound processes
- Preemptive and non-preemptive scheduling
- Scheduling algorithms for batch systems and real-time systems
3. Threads, Concurrency, and Synchronization
- Differences between a thread and a process
- Multithreading
- Thread implementation
- Race conditions
- Mutual exclusion
- Busy-waiting-based solutions for mutual exclusion
- Sleep-and-wakeup-based solutions for mutual exclusion
- Condition variables
- Producer-consumer paradigm
- Monitors, message passing, and barriers
4. Deadlock
- Definition of deadlock
- Resource allocation graph representation
- Deadlock detection and recovery
- Deadlock avoidance and prevention
- Livelock and starvation
5. Main Memory Management
- Program Status Word
- Static and dynamic relocation
- Address space
- Swapping
- Methods for free memory management
- Virtual memory and paging
- Page table, TLB, and MMU
- Page faults and working set
- Page replacement algorithms
- Trade-offs and issues in paging
- Out-of-Memory Killer
- Shared memory management between processes
- Secondary storage management
6. File System
- Definition of file, directory, and file system
- Absolute paths and relative paths
- File and directory operations
- File and directory implementation
- FAT-based and i-node-based file systems
- Virtual File Systems
- Techniques for disk space management
- Data backup techniques
- File system consistency
- Buffer cache
- Defragmentation
7. Input/Output Management
- Controllers
- Memory-mapped I/O
- Direct Memory Access (DMA)
- Interrupts and interrupt handlers
- Drivers and uniform interfacing
- Buffering techniques
- I/O libraries and spooling
- Magnetic disk
- Disk arm scheduling
- RAID
- Clocks
- I/O interfaces
8. Virtualization
- Hypervisors and VMs
- CPU virtualization
- Memory virtualization
- I/O virtualization
- Difference between VMs and containers
9. Operating System Security
- Security goals and principles
- Attackers, vulnerabilities, exploits, and malware
- Access control: ACLs and capability lists
- Authentication
- The roles of the Operating System: extended machine and resource manager
- User Mode and Kernel Mode
- History of Operating Systems
- Types of Operating Systems
- System Calls
- Main Operating System Architectures
- Bootstrapping an Operating System
2. Processes
- Difference between a program and a process
- Multiprogramming in Operating Systems
- Process creation and termination
- Process states
- Process table
- Context switch
- I/O-bound and CPU-bound processes
- Preemptive and non-preemptive scheduling
- Scheduling algorithms for batch systems and real-time systems
3. Threads, Concurrency, and Synchronization
- Differences between a thread and a process
- Multithreading
- Thread implementation
- Race conditions
- Mutual exclusion
- Busy-waiting-based solutions for mutual exclusion
- Sleep-and-wakeup-based solutions for mutual exclusion
- Condition variables
- Producer-consumer paradigm
- Monitors, message passing, and barriers
4. Deadlock
- Definition of deadlock
- Resource allocation graph representation
- Deadlock detection and recovery
- Deadlock avoidance and prevention
- Livelock and starvation
5. Main Memory Management
- Program Status Word
- Static and dynamic relocation
- Address space
- Swapping
- Methods for free memory management
- Virtual memory and paging
- Page table, TLB, and MMU
- Page faults and working set
- Page replacement algorithms
- Trade-offs and issues in paging
- Out-of-Memory Killer
- Shared memory management between processes
- Secondary storage management
6. File System
- Definition of file, directory, and file system
- Absolute paths and relative paths
- File and directory operations
- File and directory implementation
- FAT-based and i-node-based file systems
- Virtual File Systems
- Techniques for disk space management
- Data backup techniques
- File system consistency
- Buffer cache
- Defragmentation
7. Input/Output Management
- Controllers
- Memory-mapped I/O
- Direct Memory Access (DMA)
- Interrupts and interrupt handlers
- Drivers and uniform interfacing
- Buffering techniques
- I/O libraries and spooling
- Magnetic disk
- Disk arm scheduling
- RAID
- Clocks
- I/O interfaces
8. Virtualization
- Hypervisors and VMs
- CPU virtualization
- Memory virtualization
- I/O virtualization
- Difference between VMs and containers
9. Operating System Security
- Security goals and principles
- Attackers, vulnerabilities, exploits, and malware
- Access control: ACLs and capability lists
- Authentication
Prerequisites for admission
Computer programming and architectures.
Teaching methods
In-person classes.
Teaching Resources
"MODERN OPERATING SYSTEMS, GLOBAL EDITION 5th edition"
Authors: Andrew S. Tanenbaum, Herbert Bos
Year: 2024
ISBN: 9781292727905
Authors: Andrew S. Tanenbaum, Herbert Bos
Year: 2024
ISBN: 9781292727905
Assessment methods and Criteria
The written examination is divided into two phases.
The first phase consists of 21 multiple-choice questions. To proceed to the second phase, students must achieve a minimum score of 12/21.
The second phase consists of 2 open-ended questions and 2 exercises. Each open-ended question and each exercise is worth a maximum of 3 points. The maximum score for this phase is therefore 12 points; the minimum required score is 6.
The maximum overall score is 33 points. A score equal to or greater than 31 corresponds to a final grade of "30 e lode".
The assessment will focus on students' knowledge of the fundamental concepts of operating systems, their ability to describe them and establish connections among them, and their ability to apply them in the solution of simple exercises designed to verify their understanding.
The first phase consists of 21 multiple-choice questions. To proceed to the second phase, students must achieve a minimum score of 12/21.
The second phase consists of 2 open-ended questions and 2 exercises. Each open-ended question and each exercise is worth a maximum of 3 points. The maximum score for this phase is therefore 12 points; the minimum required score is 6.
The maximum overall score is 33 points. A score equal to or greater than 31 corresponds to a final grade of "30 e lode".
The assessment will focus on students' knowledge of the fundamental concepts of operating systems, their ability to describe them and establish connections among them, and their ability to apply them in the solution of simple exercises designed to verify their understanding.
INFO-01/A - Informatics - University credits: 6
Lessons: 48 hours
Professor:
Civitarese Gabriele
Shifts:
Turno
Professor:
Civitarese GabrieleProfessor(s)
Reception:
Send email for an appointment
Room 7019 (seventh floor), Department of Computer Science, via Celoria 18