Construct that provides equivalent functionality to that of semaphores and is easier to control
Threads, processes or data flows are given access to system resource
Review of concurrency concepts in Programming Languages