OPERATING SYSTEMS

Academic year
2025/2026 Syllabus of previous years
Official course title
OPERATING SYSTEMS
Course code
CT0670 (AF:521655 AR:301152)
Teaching language
English
Modality
On campus classes
ECTS credits
6
Degree level
Bachelor's Degree Programme
Academic Discipline
INF/01
Period
2nd Semester
Course year
2
Where
VENEZIA
The Operating Systems course is part of the second year of the study program, after students have studied programming and computer architecture. Building on this knowledge, the course provides insights and skills on how software interacts with the hardware platform through the operating system.
It contributes to achieving the following objectives of the degree program:

Knowledge and Understanding
Understanding the basic concepts and knowledge of the techniques used to implement the components of modern operating systems, with particular emphasis on security aspects;
Knowledge of concurrent programming;
Knowledge of the main formalisms for modeling computer systems.

Ability to Apply Knowledge and Understanding
Able to use concurrent programming to solve parallel computing problems.
Upon successful completion of this course, students will be able to:

1. Understand the role and functions of an operating system: Recognize the key components of an OS and their interactions with hardware and software.
2. Apply process management concepts: Understand and implement process scheduling, inter-process communication, and thread management.
3. Explain memory management techniques: Describe virtual memory, paging, segmentation, and memory allocation strategies.
4, Comprehend file system operations: Understand file system structures, file allocation methods, and storage management.
5. Use operating system tools effectively: Apply OS tools and commands for system management tasks, including file handling, process control, and system monitoring.
6. Compare different operating systems: Analyze the similarities and differences between modern operating systems such as Linux, Windows, and macOS.
Basic knowledge of computer architecture and hardware (CPU, memory, storage).
Familiarity with high-level programming languages (preferably C or Python).
Understanding of fundamental data structures (arrays, linked lists, stacks, queues).
Introduction to Operating Systems
- Functions and types of operating systems
- Overview of OS architecture and components
- Evolution and historical development of operating systems

Process Management
- Definition of processes and process control block (PCB)
- Process states and process scheduling algorithms (FIFO, Round Robin, SJF)
- Inter-process communication (IPC)

Threads and Concurrency
- Difference between processes and threads
- Synchronization: Mutexes, semaphores, and condition variables
- Deadlock detection and prevention

Memory Management
- Memory hierarchy and structure (logical vs. physical memory)
- Paging and segmentation techniques
- Virtual memory and page replacement algorithms
- Memory allocation methods: Contiguous, buddy system, and paging

File Systems
- File system structure: Directories, metadata, and file allocation
- Disk scheduling algorithms
- File system management and storage techniques
- File system security

I/O Systems and Device Management
- I/O devices, device drivers, and interrupt handling
- Buffering, spooling, and direct memory access (DMA)
- Disk and device scheduling algorithms

Security and Protection
- Security concepts: Confidentiality, integrity, and availability
- User authentication and access control
- Protection mechanisms: ACLs, encryption, and system integrity

OS Case Studies and Modern Trends
- Comparative study of Linux, Windows, and macOS
- Virtualization and cloud computing trends
- Mobile OS overview: Android and iOS

Practical Sessions and Lab Work
- Hands-on practice with Linux/Unix commands
- System monitoring and process control tasks
Silberschatz, Calvin, Gagne: Operating System Concepts 10th edition. John Wiley & Sons, Inc. 2018
The exam consists in a midterm and a final exam or a single exam.
Both cases consist in a written exam with exercises and open questions. Exercises are aimed at evaluating the practical skills of the candidate on the topics addressed by the course and will have different levels of complexity. Oral interviews may be required by the instructor to assess a proper marking and will face a discussion of the written exam.
written
If the student takes the midterm this will be evaluated for 40% of the total score while the final exam the remaining 100%.

The evaluation of the written exam will give half weight to the theoretical part and half to the exercises. The theoretical questions will be evaluated based on the knowledge depth and property of technical language showed by the student. The exercises will be evaluated based on their difficulties.
Lectures and laboratory activities.
Definitive programme.
Last update of the programme: 18/03/2025