Semaphores
Semaphores are counters that can be either
incremented or decremented. They can be used
in situations where there is a finite limit to a resource and a mechanism is
needed to impose that limit. An example might be a buffer that has a fixed
size. Every time an element is added to a buffer, the number of available
positions is decreased. Every time an element is removed, the number available
is increased.
Semaphores
can also be used to mimic mutexes; if there is only one element in the
semaphore, then it can be either acquired or available, exactly as a mutex can
be either locked or unlocked.
Semaphores
will also signal or wake up threads that are waiting on them to use available
resources; hence, they can be used for signaling between threads. For example,
a thread might set a semaphore once it has completed some initialization. Other
threads could wait on the semaphore and be signaled to start work once the
initialization is complete.
Depending
on the implementation, the method that acquires a semaphore might be called wait, down, or acquire, and the
method to release a semaphore might be called post, up, signal, or release. When the semaphore no longer has resources available, the
threads requesting resources will
block until resources are available.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.