Skip to main content
CODE 80302
ACADEMIC YEAR 2024/2025
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

The goal of the theoretical lectures is to acquire knowledge on the problems raised by concurrent programming which requires knowldege on distributed architecures, operating systems and on distributed algorithms.

Moreover the theoretical part will study different levels of abstractions through the study of low level and high level libraries.

The theoretical part will present as well some methods for the automatic verification of concurrent systems.

The goal of the laboratories is to build different distribuited systems and to solve practical problems of concurrent programming.

This course will offer the possibiltiy to the students willing to to aquire the following  Open Badges:

  • Competenza alfabetica funzionale - livello avanzato
  • Competenza sociale – livello base
  • Capacità di imparare a imparare - livello avanzato

The students who wish to acquire the Open Badges will to prepare a presentation of two laboratories that they will have done in group and will have to correct two laboratories of other groups.

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
  • Introduction to the theory of model-checking

 

 

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

Exam Board

ARNAUD HENRI PAUL SANGNIER (President)

DAVIDE ANCONA

GIORGIO DELZANNO (President Substitute)

LESSONS

LESSONS START

Accordingly to the teaching calended approved by the Consiglio dei Corsi di Studio in Informatica

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.

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education