Semafoarele reprezinta unul dintre cele mai cunoscute mecanisme de sincronizare. Ele au fost introduse de Dijkstra. Un semafor este o variabila speciala care poate avea numai valori pozitive (de tipul unui contor) si asupra careia pot fi permise numai doua operatii: wait si signal. Intrucat wait si signal au deja denumiri speciale in UNIX, vom folosi notatiile originale: