The course provides an introduction to the structure and organization on modern operating systems.
Students will be able to identify and describe the main functionalities of modern operating systems.
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.
Ability to write and analyse programs, including familiarity with the C programming language
Knowledge of the components and structure of Computers
Teaching will be carried out with traditional lectures as well as with the development of problems and practical exercises.
Working students will be given access to hands-out (slides), questions of past exams, and recordings of the lectures
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)
Operating Systems: Internals and Design Principles. 8th edition di W. Stallings, Pearson
ALESSANDRO ARMANDO (President)
PIERPAOLO BAGLIETTO
ALESSIO MERLO
MASSIMO MARESCA (President Substitute)
https://corsi.unige.it/8719/p/studenti-orario
Written Exam based on open–ended questions.
Students with learning disorders ("disturbi specifici di apprendimento", DSA) will be allowed to use specific modalities and supports that will be determined on a case-by-case basis in agreement with the delegate of the Engineering courses in the Committee for the Inclusion of Students with Disabilities
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.
The practical test will assess
the knowledge of the command line interface of the Linux operating system
the ability to write programs (scripts) to automate functionalities of operating systems.