Skip to main content
CODE 114616
ACADEMIC YEAR 2025/2026
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
LANGUAGE English
TEACHING LOCATION
  • IMPERIA
SEMESTER 2° Semester
MODULES Questo insegnamento è un modulo di:

AIMS AND CONTENT

LEARNING OUTCOMES

This course introduces the structure of operating systems, the functions of the modules they are organized into, and the algorithms and software structures used.

AIMS AND LEARNING OUTCOMES

The aim of the course is to help students develop awareness of fundamentals of modern Operating Systems (OS) and system programming through current ones. To this end, the course will teach the algorithms and policies necessary to manage the internals of operating systems, specifically interprocess communications, process scheduling, resource management, memory management, file systems, and I/O scheduling, as well as the architectures of operating systems and computer networks. Particular attention will be given to a comparative overview of Microsoft operating systems (especially Windows 10/11) and Linux distributions (such as Ubuntu), as well as the structure of the Internet and its main services based on TCP/IP. The course also aims to provide students with practical skills on system programming through hands-on activities.

At the end of this course, students will be expected to be able to proficiently perform system programming tasks, as well as to explain differences among current operating systems architectures (either server/desktop/mobile/embedded). The students will known the principal management policies and algorithms to achieve various tasks in operating systems and use the acquired skills to tune better their programs.

TEACHING METHODS

Lectures (in presence and/or online), supported by videotutorials and laboratory exercises (even virtual) and by in-depth seminars.

The teaching methodology used in the course will be based on the active involvement of students in the learning process, and will be re-contextualized for integrated digital didactics (IDD). It will therefore be a hybrid methodology between frontal lessons, Flipped Classroom.

SYLLABUS/CONTENT

PART ONE - Fundamentals of Operating Systems

The structure of a generic operating system, with an emphasis on the algorithms and data
structures needed to perform various tasks to manage processes, resources, memory, files, and IO devices. Topics:

  • Introduction to the structure of operating systems. Basic concepts, functions and Architectures of Operating Systems  (monolithic, microkernel, hybrid structures).
  • Concurrent Programming, Process Interaction and Synchronization. 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.
  • Process Management and Scheduling. 
  • Resource Management and Deadlock 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. 

 

PART TWO - System Programming

  • Shell Programming in Linux (Bash) and Windows (Powershell): basic commands
  • Internals Programming. Inter-Process Communication (signal, pipe, socket, shared memory, ...). 

RECOMMENDED READING/BIBLIOGRAPHY

  • Abraham Silberschatz - Peter Baer Galvin - Greg Gagne, Operating Systems Concepts, 10th Ed. (2019) Pearson (In English or in Italian). 

TEACHERS AND EXAM BOARD

LESSONS

LESSONS START

The timetable for this course is available here: Portale EasyAcademy

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

Written exam based on closed and open–ended questions, followed by oral discussion.

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.

FURTHER INFORMATION

Students with certification of Specific Learning Disabilities (SLD), disabilities, or other special educational needs must contact the instructor at the beginning of the course to agree on teaching and examination methods that, while respecting the course objectives, take into account individual learning styles and provide appropriate compensatory tools. It is reminded that the request for compensatory/dispensatory measures for exams must be sent to the course instructor, the School representative, and the “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” office (dsa@unige.it<mailto:dsa@unige.it>) at least 10 working days before the test, as per the guidelines available at the link: https://unige.it/disabilita-dsa

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education
Decent work and economic growth
Decent work and economic growth
Industry, innovation and infrastructure
Industry, innovation and infrastructure