Semaphore is a synchronization tool defined by Dijkstra in 1965 for managing concurrent process by using the value of simple variable. Semaphore are the main synchronization primitive used in Unix.A semaphore S is a simple integer variable, which can take non-negative value.

Two different operation can be performed on semaphore are:
Wait operation :- Wait operation is also called P. It is decrements the semaphore value.If the value become negative, then the process executing the wait is blocked. The definition of wait operation using a semaphore (S).
Single operation :- Single operation is also called V. It is increments the semaphore value. If the value is not positive, the process blocked by a wait operation is unblocked.