20801961 - OPERATING SYSTEMS

The course intend to provide: (1) competencies about a generic modern operating system, (2) competencies about the structure of a unix operating system, and specifically about linux, (3) knowledge about methodologies adopted for solving problems within the management of a modern operating system, (4) ability in the use a unix platform as a user, (5) ability in programming a unix system (scripting), (6) basic ability in system programming.
teacher profile | teaching materials

Programme

- Computer System Overview: architecture, CPU, registers, instruction execution, interrupt, memory hierarchy, locality, I/O, procedures
- Operating Systems Overview: definitions, objectives, architecture, kernel/user mode, caratteristiche salienti
- Processes and Threads: dispatching, states, description and control, models and memory management
- Memory: allocators, partitioning, best/first/next fit, buddy algorithm, paging, segmentation, virtual memory and its hardware/software management/supports
- Scheduling: short-term and long-term scheduling, algorithms for cpu scheduling
- I/O and File Management: Disk scheduling, RAID, UNIX File Management, inode, Linux VFS, ext2
- Synchronization: primitives, RMW, mutex, semaphores
- Introduction to Linux: frequently-used commands (e.g., file and directory management), environment variables, piping, redirection, signals, regular expressions (sed e grep), scripting (bash, awk), linux filesystem management
- Debugger: gdb stepping, breakpoints, watching, backtrace, and commands.
- System programming: Linux process/thread management
- Virtualization: general concepts, containers, Docker

Core Documentation

The course is partly based on

W. Stallings, "Operating Systems: Internals and Design Principles", 6th edition (or higher). Prentice Hall.
Operating System Concepts - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - John Wiley & Sons, ninth edition (or higher)

However, some topics are covered only on the slides published in the teaching material.

Type of delivery of the course

The lessons will be held face to face and streamed on the Teams channel

Type of evaluation

Theory questions (65% of the grade) Programming exercises (35% of the grade)