Another difference on Windows - Mutex objects can only be released by the thread which acquired them, whereas a semaphore object with a count of one could be acquired on one thread and then released on another.
That is also the case for pthread mutexes and posix semaphores.
I'd emphasize a little more that mutexes are special cases of semaphores. You know, for the skimmers.
Can somebody explain why is this statement is not accurate :
"A mutex is really a semaphore with value 1."
Ahh..The old "starving philosophers". If you were going to make me pick 5 thngs I could remember from my CS courses, this would probably come in at 4 or 5.
A semaphore is just one of the implementations of mutex (mutual exclusion) that allows waiters on the lock.
They didn't mention that having -4 keys means that there are 4 people waiting to use the bathroom.