ocaml-semaphore is a binding that provides semaphore operations.
Current version exposes a bit simplified interface for unnamed and named semaphores available in Linux (POSIX). Windows port is not tested.
Cf. http://ocaml-sem.sourceforge.net/