# Sincronizzazione tra processi con semafori, problema dei lettori-scrittori in C

Eccoci con un altro programmino in C che presenta un classico problema di sincronizzazione tra processi noto come problema dei LETTORI-SCRITTORI risolto con i semafori in linguaggio C, non è mia preoccupazione spiegare tale problema in quanto basta fare una ricerca per capire di cosa si tratta. Vale lo stesso per i semafori e le varie operazioni inerenti

il testo del problema è il seguente:

dentro lo zip c’è il solito makefile da lanciare con il comando make da una shell linux o unix, una volta compilato baserà lanciare ./main. Il codice è abbastanza commentato.

Il programma chiede all’utente quanti lettori e quanti scrittori creare, successiavamente il processo padre crea con la system call FORK n processi lettori e n scrittori. Per 10 volte ognuno, (modificabili da costante DELAY) gli SCRITTORI modificheranno la variabile condivisa (semplicemente incrementandola di 1) simulando un operazione sul database mentre i lettori leggeranno la variabile condivisa. Il programma gestisce l’alternanza tra gli uni e gli altri evitando agli scrittori di modificare contemporaneamente la variabile e ai lettori di non leggere se ci sono scrittori che incrementano ma contemporaneamente se non ci sono scrittori più lettori dovranno leggere contemporaneamente dal DB.

il programma inoltre evita i noti problemi di DEADLOCK e STARVATION.

download link:

Dropbox

MediaFire

         e i digest:

MD5: 5bd9485ddca0ba759f9b7c7ba7199f9b

SHA1: 071543934456e4644d6624adcde07c240bf91ddf