Un semafor este o variabila de tip intreg asupra careia se pot executa operatii de incrementare, decrementare
Semaforul are rol important in sincronizarea proceselor
In aplicatiile in timp real semafoarele au rolul in a gestiona accesul la resursele critice
O resursa critica este un dispozitiv care poate fi accesat decat de un singur proces la un moment dat si numai unul
In exemplu de mai jos este modelat un semafor binar si trei procese concurentiale(paralele)
Porniti procesele respectiv stopatile prin apasarea butoanelor Porneste Opreste
Zona critica este marcata cu un albastru mai deschis, modificati dimeniunea zonei critice utilizand scrool barul de sub fiecare proces
Observati ca numai un singur proces poate sa fie in zona critica la un moment dat
Semaforul poate lua valorile 1- Semafor deschis, 0- Semafor blocat
Codul sursa: