Semaforji omogocajo komunikacijo med vec procesi z izmenjavo vrednosti semaforjev. Uporabljajo se predvsem za zaklepanje in pravilno deljenje virov (resource sharing) med razlicnimi procesi.
Semaforji so pozitivne stevilcne vrednosti in omogocajo dostop do polja semaforjev s funkcijo semop. Ce je vrednost, ki jo semafor vsebuje pozitivna, potem proces lahko uporabi vire (podatke). Ob uporabi se vredost semaforja zmanjsa za ena. Ce je vrednost semaforja enaka nic, se proces zacasno ustavi (sleep), dokler ne dobi semafor vrednosti ena in s tem dovoljenje za uporabo.
Podobno kot pri posiljanju sporocil je tudi tu omejeno
stevilo semaforjev. Pri uporabi je potrebno paziti na pravilno
sproscanje virov (semaforjev) ob koncanju programa v vseh
moznih variantah. Te omejitve vnasajo tezave pri izdelavi
programa, zato se za enostavnejse programe raje uporablja
zaklepanje z uporabo datotek (advisory record
locking), ki je enostavnejse, saj sistem
skrbi za to, da se ob koncanju procesa sprosti zaklenjena
datoteka. Zaklepanje datotek je pogosta praksa, kjer se kreira
datoteka minimalne velikosti in zaklene proti pisanju.