Distinguish, differentiate, compare and explain what is the Difference between Mutexes and Semaphores. Comparison and Differences.
Difference between Mutexes and Semaphores
Semaphores is a synchronization tool to overcome the critical section problem.
A semaphore S is basically an integer variable that apart from initialization is accesses only through atomic operations such as wait() and signal().
Semaphore object basically acts as a counter to monitor the number of threads accessing a resource.
Mutex is also a tool that is used to provide deadlock free mutual exclusion. It protects access to every critical data item. If the data is locked and is in use, it either waits for the thread to finish or awakened to release the lock from its inactive state