Where to use binary semaphore when mutex are available?

Viewed 5179

While reading about binary semaphore and mutex I found the following difference:

Both can have value 0 and 1, but mutex can be unlocked by the same thread which has acquired the mutex lock. A thread which acquires mutex lock can have priority inversion in case a higher priority process wants to acquire the same mutex whereas this is not the case with binary semaphore.

So where should I use binary semaphores? Can anyone cite an example?

EDIT: I think I have figured out the working of both. Basically binary semaphore offer synchronization whereas mutex offer locking mechanism. I read some examples from Galvin OS book to make it more clear.

3 Answers
Related