CODE 104746 ACADEMIC YEAR 2023/2024 CREDITS 6 cfu anno 2 INGEGNERIA INFORMATICA 8719 (L-8) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE Italian TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB OVERVIEW The course provides an introduction to the structure and organization on modern operating systems. AIMS AND CONTENT LEARNING OUTCOMES Students will be able to identify and describe the main functionalities of modern operating systems. AIMS AND LEARNING OUTCOMES 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. PREREQUISITES Ability to write and analyse programs, including familiarity with the C programming language Knowledge of the components and structure of Computers TEACHING METHODS 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 SYLLABUS/CONTENT 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) RECOMMENDED READING/BIBLIOGRAPHY Slides used during the lectures will be made available to the students Operating Systems: Internals and Design Principles. 8th edition di W. Stallings, Pearson TEACHERS AND EXAM BOARD ALESSANDRO ARMANDO Exam Board ALESSANDRO ARMANDO (President) PIERPAOLO BAGLIETTO ALESSIO MERLO MASSIMO MARESCA (President Substitute) LESSONS LESSONS START https://corsi.unige.it/8719/p/studenti-orario Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION 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 ASSESSMENT METHODS 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. Exam schedule Data appello Orario Luogo Degree type Note 10/01/2024 11:00 GENOVA Scritto E3 07/02/2024 11:00 GENOVA Scritto 11/06/2024 15:00 GENOVA Scritto E1 10/07/2024 11:00 GENOVA Scritto G1 09/09/2024 16:00 GENOVA Scritto Aula E1