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.
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.
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
Ricevimento: Ricevimento su appuntamento via mail.
ARNAUD HENRI PAUL SANGNIER (Presidente)
DAVIDE ANCONA
GIORGIO DELZANNO (Presidente Supplente)
In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/8759/studenti-orario
L'esame consiste in un esame scritto di 2 ore e la consegna di alcuni laboratori fatti durante l'anno. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa
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.
Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.