Process Synchronization – V –Implementing Semaphore without busy waiting

In the previous post, we discussed about mutex locks and semaphores and the differences between them. We also discussed how mutex implementations and the sempahore implementations (using wait() and signal() ) discussed previously suffered from busy waiting, which entails doing a lot of unnecessary work. Let us now discuss implementing Read More …

Process Synchronization – IV – Mutex and Semaphores

In the previous post, we discussed a solution to the Critical Section problem using test_and_set() atomic instruction which satisfied all the three requirements mandated for a correct solution. In this post, we shall start with software-based solutions designed to solve the critical section problem. This is necessary, because hardware-based solutions Read More …