Semafoor

In programmeren, vooral in Unix systemen, zijn semaforen een techniek voor het coƶrdineren of synchroniseren van activiteiten waarbij meerdere processen concurreren voor dezelfde besturingssysteembronnen. Een semafoor is een waarde op een aangewezen plaats in de opslag van het besturingssysteem (of de kernel) die elk proces kan controleren en dan wijzigen. Afhankelijk van de waarde die wordt gevonden, kan het proces de bron gebruiken of zal het ontdekken dat deze al in gebruik is en een bepaalde tijd moet wachten voordat het het opnieuw probeert. Semaforen kunnen binair zijn (0 of 1) of kunnen aanvullende waarden hebben. Typisch, een proces dat semaforen gebruikt controleert de waarde en dan, als het de bron gebruikt, verandert de waarde om dit weer te geven zodat volgende semafoor gebruikers weten dat ze moeten wachten.

Semaforen worden algemeen gebruikt voor twee doeleinden: om een gemeenschappelijke geheugenruimte te delen en om toegang tot bestanden te delen. Semaforen zijn een van de technieken voor interprocess communicatie (IPC). De programmeertaal C biedt een aantal interfaces of "functies" voor het beheren van semaforen.