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
- 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, 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
[t1] Operating Systems: Internals and Design Principles - William Stallings - Prentice Hall, fifth edition (or higher). Reference edition: ninth.
[t2] Operating Systems Concepts - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - Addison Wesley/Pearson, ninth edition (or higher). Reference edition: tenth global edition.
However, some topics are covered only on the slides published in the teaching material.
Mutuazione: 20801961 SISTEMI OPERATIVI in Ingegneria informatica L-8 N0 MAROTTA ROMOLO
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, 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[t1] Operating Systems: Internals and Design Principles - William Stallings - Prentice Hall, fifth edition (or higher). Reference edition: ninth.
[t2] Operating Systems Concepts - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - Addison Wesley/Pearson, ninth edition (or higher). Reference edition: tenth global edition.
However, some topics are covered only on the slides published in the teaching material.
Type of delivery of the course
Face-to-face lessonsAttendance
Attendance is not mandatoryType of evaluation
Theory questions (65% of the grade) Programming exercises (35% of the grade)