Skip to main content
CODE 80302
ACADEMIC YEAR 2025/2026
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

Introduction to multihreaded programming, concurrent programming and event based programming.

In this course, we will introduce the base concept linked to multicore architecture, multihreading in operating systems and in distributed algorithms and architectures for distributed systems.

The course is divided into some theoretical lectures and some programming laboratories

AIMS AND CONTENT

LEARNING OUTCOMES

Understand the problems and the used methods for the design of concurrent and asynchronous distributed programs through the study of the communnication and synchronization between processes with shared memory and between  processes distributed over different platform and programed in different languages.

AIMS AND LEARNING OUTCOMES

Upon completion of the teaching, the student will be able to:

-Describe the problems due to concurrent execution of programs.
-Describe the problem of mutual exclusion
-Describe the differences between communication via shared memory and communication via messages
-Analyze the behavior of a concurrent system.
-Use synchronization mechanisms such as mutex, semaphores and condition variable
-Implement in various languages of concurrent systems
-Describe problems related to distributed systems with failures

PREREQUISITES

  • Notions of programming in C and Java
  • Operating Systems
  • Network programming
  • Basic concepts of comouting networks

TEACHING METHODS

  • Theoretical lecture
  • Execises in class
  • Exercises in laboratory

 

SYLLABUS/CONTENT

  • Concurrency in the OS and in mutithread systems
  • Introduction to concurrent programming
  • Introduction to the concurrency problems
  • Standard synchronization library with mutex and barriers
  • Semaphores and monitors
  • Introduction to distributed algorithms
  • Distributed/concurrent network programming

 

 

RECOMMENDED READING/BIBLIOGRAPHY

  • Slides of the lecturer provided on Aulaweb
  • Online material
  • The Art of Multiprocessing Programming - M. Herlihy and N. Shavit. 
  • Principles of Concurrent and Distributed Programming - Mordechai Ben-Ari

TEACHERS AND EXAM BOARD

LESSONS

LESSONS START

According to the calendar approved by the Degree Program Board: https://corsi.unige.it/corsi/8759/studenti-orario

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The evaluation consists in a 2 hours written exam and the delivery of some laboratory works.

ASSESSMENT METHODS

The written exam will verify the ability of the student to use the different notions presented during the lectures and the delivery of the laboratory  works will allow to cotrol that the student is able to use in pratice the presented concepts.

FURTHER INFORMATION

 Contact the instructor for any additional information not included in the course description.

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education