CODICE 80302 ANNO ACCADEMICO 2025/2026 CFU 6 cfu anno 3 INFORMATICA 8759 (L-31) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Introduzione alla programmazione multithreaded, concorrente, ad eventi e distribuita. L'insegnamento introduce concetti di base legati ad architetture multicore, multithreading nei sistemi operativi e nella programmazione di algoritmi ed architetture di base per sistemi distribuiti. L'insegnamento ha una parte di teoria in classe e una serie di laboratori. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Comprendere i problemi e le metodologie necessarie allo sviluppo di programmi concorrenti e asincroni attraverso lo studio dei principi di comunicazione e sincronizzazione tra processi con memoria condivisa e tra processi distribuiti su linguaggi e piattaforme differenti. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine dell'insegnamento lo studente/la studentessa sarà in grado di: -Descrivere le problematiche dovuto all'esecuzione concorrente di programmi -Descrivere il problema della mutua esclusione -Descrivere le differenze fra comunicazione tramite memori condivisa e comunicazione tramite messaggi -Analizzare il comportamento di un sistema concorrente -Usare i meccanismi di sincronizzazione come mutex, semafori e variabile di condizione -Implementare in vari linguaggi dei sistemi concorrenti -Descrivere i problemi legati ai sistemi distribuiti con fallimenti PREREQUISITI Programmazione in Linguaggio Java/C Sistemi Operativi Programmazione rete Concetti di Base di Reti di Calcolatori MODALITA' DIDATTICHE Lezioni frontali di teoria Esercitazioni in classe Esercitazioni di laboratorio PROGRAMMA/CONTENUTO Concorrenza nel SO e in sistemi multithreading Introduzione alla Programmazione Concorrente Introduzione pratica alla concorrenza Librerie di sincronizzazione standard come mutex e barriere Semafori e monitorss Introduzione ad Algoritmi Distribuiti Programmazione concorrente distribuita in rete TESTI/BIBLIOGRAFIA Lucidi e note del docente messe a disposizione su Aulaweb Materiale online The Art of Multiprocessing Programming. M. Herlihy and N. Shavit. Principles of Concurrent and Distributed Programming - Mordechai Ben-Ari DOCENTI E COMMISSIONI ARNAUD HENRI PAUL SANGNIER Ricevimento: Ricevimento su appuntamento via mail. LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica https://corsi.unige.it/corsi/8759/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame consiste in un esame scritto di 2 ore e la consegna di alcuni laboratori fatti durante l'anno MODALITA' DI ACCERTAMENTO La prova scritta verifica la capacità dello studente di mettere in pratica le nozioni viste a lezione e la consegna di alcuni laboratori permette di controllare che lo studente è capace di usare i concetti visti in pratica. ALTRE INFORMAZIONI Rivolgersi al docente per ulteriori informazioni non comprese nella scheda insegnamento. Agenda 2030 Istruzione di qualità