Salta al contenuto principale della pagina

OPERATING SYSTEMS

CODE 104746
ACADEMIC YEAR 2022/2023
CREDITS
  • 6 cfu during the 2nd year of 8719 INGEGNERIA INFORMATICA (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

    1. Introduction to the structure of operating systems. Basic concepts, monolithic and microkernel structure.

    2. Process and thread management. Process creation and management. Threads and their implementation.

    3. 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.

    4. Deadlock and Starvation. Approaches to deadlock management: Detection, Prevention and Avoidance. Resource allocation graphs. The Dining Philosophers Problem.

    5. Memory management. Physical memory and virtual memory. Paged management and its implementation problems. Segmented management.

    6. Uniprocessor scheduling. Long, medium and short term scheduling. Scheduling algorithms: FCFC, Round Robin, SPN, SRT, HRRN, Feedback.

    7. Input-output Management. CPU-device-memory interaction. DMA architecture. Disk scheduling.

    8. The file system. Structure and attributes of files and directories. File system implementation and optimization methods.

    9. 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

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    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

    Date Time Location Type Notes