Linux Ask!

Linux Ask! is a Q & A web site specific for Linux related questions. Questions are collected, answered and audited by experienced Linux users.

Oct 142010
 

What are the differences between Mutex and Semaphore?

Answer:

A very good example was given in the Wikipedia

Mutex:

Is a key to a toilet. One person can have the key - occupy the toilet - at the time. When finished, 
the person gives (frees) the key to the next person in the queue.

Semaphore:

Is the number of free identical toilet keys. Example, say we have four toilets with identical locks
and keys. The semaphore count - the count of keys - is set to 4 at beginning (all four toilets are free),
then the count value is decremented as people are coming in. If all toilets are full, ie. there are no 
free keys left, the semaphore count is 0. Now, when eq. one person leaves the toilet, semaphore is 
increased to 1 (one free key), and given to the next person in the queue.

So, A mutex is really a semaphore with value 1