5. Problemi Classici di Programmazione Concorrente e Definizioni di concorrenza

   Argomenti: mutua esclusione, sincronizzazione, concorrenza, soluzioni classiche.
   Riferimenti: Capitolo "Sincronizzazione di Processi" del libro di testo.

LEZIONI su Problemi CLASSICI di Programmazione Concorrente tra pthread risolti con Mutexes e Condition Variables, Definizioni

5c_ProblClassici_ProgrammazioneConcorrenteInC_PosixThread.pdf (Appunti delle lezioni)

--- Esempi utili ---

CODICE su Problemi CLASSICI di Programmazione Concorrente tra pthread risolti con Mutexes e Condition Variables

Codice per controllo d'errore, comune a tutte le soluzioni
printerror.h macro per stampa errori, usato in tutti gli esempi seguenti
DBGpthread.c modulo con funzioni per controllo di errore, usato in tutti gli esempi seguenti
DBGpthread.h prototipi delle funzioni per controllo di errore, usato in tutti gli esempi seguenti

Sincronizzazione Circolare tra due pthread
SBAGLIATO_0_circolare1a1.c
SBAGLIATO_1_circolare1a1.c
SBAGLIATO_2_circolare1a1.c
circolare1a1.c GIUSTA Sincronizzazione circolare tra 2 pthread
Makefile Makefile per gli esempi di Sincronizzazione circolare tra 2 pthread

Sincronizzazione Circolare tra 3 pthread CON TURNO
sincroCircolareConTurno.c
MakefileSincroCircolareConTurno Makefile per Sincronizzazione circolare tra 3 pthread con turno

Algoritmo del Fornaio per code FIFO
algoritmo_fornaio_per_coda_FIFO.c Codice algoritmo del fornaio per code FIFO
algoritmo_fornaio_BUSY_WAITING_per_coda_FIFO.c implementazione ORRENDA POCO EFFICIENTE a causa di Busy Waiting
Makefile Makefile per gli esempi di algoritmo del fornaio per code FIFO

Produttori e Consumatori con un buffer solo
NProdMCons1buffer_menoefficiente.c Codice Produttori e Consumatori con 1 solo buffer: Soluzione meno efficiente.
Makefile1buffer_menoefficiente Makefile per Produttori e Consumatori con 1 solo buffer meno efficiente
NProdMCons1buffer.c Codice Produttori e Consumatori con 1 solo buffer: molto EFFICENTE.
Makefile1buffer Makefile per Produttori e Consumatori con 1 solo buffer. molto Efficiente

Lettori e Scrittori
NLettoriMScrittori.c Codice Readers & Writers
Makefile Makefile per Lettori Scrittori

5 Filosofi a tavola
5filosofi.c Codice 5 filosofi
Makefile Makefile per 5 Filosofi

Passaggio Sicuro di Testimone
PassaggioSicuroDiTestimone.c Codice Passaggio Sicuro di Testimone
Makefile Makefile per Passaggio Sicuro di Testimone

GIUSTA, Barbiere appisolato completo
barbiereconsaluti.c Codice Barbiere appisolato completo
Makefileconsaluti Makefile per Barbiere appisolato che saluta e viene salutato