Hey guys,
A semaphore is an extension of a mutex. A mutex allows one thread
inside the critical section, a semaphore allows n threads in a
critical section (when the number n is given as a parameter on the
initialization). A semaphore is useful when a resource has more than
one instance, and a mutex can be implemented by initializing a
semaphore with the value 1.

Thanks
Ankit

On Sat, Jun 18, 2011 at 2:04 AM, Dumanshu <duman...@gmail.com> wrote:
> @DK: So u mean to say that Mutex and binary semaphores provide
> completely same functionality. Right?
> Say u have a resource R and u can provide access to this particular
> only one at a time (lets say multiple threads are there).
> Now we can use mutex. One by one the threads will lock it and will use
> the resource and then unlock it for other threads.
> We can use binary semaphore. One thread will signal it, value will be
> 0 and use the resource. Later, it will signal it to value 1 so now
> other thread can do the same thing.
>
> So here we dont have any difference between mutex and binary
> semaphore. We can use either.
>
> Now plz give me some examples where mutex is preferred over binary
> semaphore and vice-versa.
>
> Thanks
> Dumanshu
>
> On Jun 18, 1:58 am, DK <divyekap...@gmail.com> wrote:
>> @Dumanshu/@Ankit: Of course mutexes can be made to work between processes
>> (it's an implementation detail). But the *concept* of a mutex is Owner +
>> (Lock & Key) pair. By adding the concept of Owner to a lock, we can ensure
>> that only the person who locked the lock can open it. This *guarantees*
>> mutual exclusion (which is unlike a semaphore). A semaphore is a signalling
>> mechanism between threads/processes that simply indicates an event that has
>> occured asynchronously to the process/thread's flow of control (for
>> processes/threads other than the event generating process of-course). It is
>> often used to indicate that cooperative progress may be possible on
>> resources under contention or synchronization between states may be
>> required. Any cooperating process/thread can modify the value of a semaphore
>> which is not true of a mutex.
>>
>> Note: Mutex and Semaphore are essentially concepts. Their implementations
>> can vary in different systems and have different implementation constraints
>> but the theory is clear. The two are different and serve different purposes
>> though they may share implementation details.
>>
>> --
>> DK
>>
>> http://twitter.com/divyekapoorhttp://www.divye.in
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to 
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/algogeeks?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to