Salta al contenuto principale
CODICE 80302
ANNO ACCADEMICO 2025/2026
CFU
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

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

Agenda 2030
Istruzione di qualità
Istruzione di qualità