CODE 80302 ACADEMIC YEAR 2025/2026 CREDITS 6 cfu anno 3 INFORMATICA 8759 (L-31) - GENOVA 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 ARNAUD HENRI PAUL SANGNIER Ricevimento: Reception through appointment via mail. 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 Quality education