Skip to main content
CODE 114616
ACADEMIC YEAR 2026/2027
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.

Students who hold valid certificates relating to Specific Learning Difficulties (SLD), disabilities or other educational needs are invited to contact the lecturer and the school’s disability liaison officer at the start of the course to agree on any teaching arrangements which, whilst respecting the course objectives, take into account individual learning styles.

The contact details for the university’s disability liaison officer are available at the following link: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.

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

Exam Board

GIANNI VIARDO VERCELLI (President)

DANIELE ZOLEZZI

NORBERT MAGGI (President Substitute)

LESSONS

LESSONS START

https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

Written exam based on closed and open–ended questions.

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 valid certifications for Specific Learning Disorders (SLD) may request accommodations for exams at least 7 days prior to the exam date by filling out the “accommodation request form” (available via online services at https://modulionline.unige.it/richiesta-adattamenti# no-back), which will be automatically forwarded by the system to the instructor in charge of the course and to the faculty liaison for students with disabilities and SLDs in their School/Department.

The student will receive a copy of their request.

 

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