A hardware or software
flag. In
multitasking systems, a semaphore is a
variable with a value that indicates the status of a common
resource. It's used to lock the resource that is being used. A process needing the resource checks the semaphore to determine the resource's status and then decides how to proceed.