Edsgar Dijkstra abstracted the key notions of mutual exclusion primitives in his concept of Semaphores.
Semaphores provide a solution to the mutual exclusion problem.
Passieren to pass Proberen to test Vrijmagen to make free Verhogen to increment Binary Semaphores can assume only the value 0 or the value 1. Counting semaphores can assume only non-negative integers. Counting semaphores can have any non-negative integer value. Mutual exclusion to avoid race conditions in critical sections of concurrently executing processes that are accessing shared data. The semaphore represents the number of resources available and is called a counting semaphore 2.