By Topic

Extending Inter-process Synchronization with Robust Mutex and Variants in Condition Wait

Sign In

Cookies must be enabled to login.After enabling cookies , please use refresh or reload or ctrl+f5 on the browser for the login options.

Formats Non-Member Member
$33 $13
Learn how you can qualify for the best price for this item!
Become an IEEE Member or Subscribe to
IEEE Xplore for exclusive pricing!
close button

puzzle piece

IEEE membership options for an individual and IEEE Xplore subscriptions for an organization offer the most affordable access to essential journal articles, conference papers, standards, eBooks, and eLearning courses.

Learn more about:

IEEE membership

IEEE Xplore subscriptions

1 Author(s)
Sriram Raghunathan ; India Software Labs., IBM India (P) Ltd., India

Condition variables and mutexes are synchronization mechanisms defined in the POSIX Pthreads specification and there are several implementations that address these requirements. Applications wanting to use them for inter-process communication could suffer from process hangs, in the event of unexpected termination of a mutex owning process. Also, if condition waiters need to have fairness associated with them across processes, threads should enable priority scheduling with contention scope set to system level. This could prevent a thread in another process, or in the kernel, from running and lead to starvation. To address these limitations, we present a mechanism to implement FIFO condition wait, signaling and robust mutex using system V semaphores. The paper also describes lockless condition wait, a simple mechanism implemented using compare-and-swap (CAS) atomic primitive. Since semaphores are known to be heavy weight objects, we evaluate the performance of the proposed base implementation in comparison with process shared mutexes and condition variables provided by pthread library on major UNIX platforms. The results indicate that the overheads associated with semaphores even out gradually under heavy loads (with the exception of Native POSIX Thread Library (NPTL) on Linux) on multi-CPU machines lending support to the idea that the implementation could be widely deployed by applications wanting prioritized and robust synchronization.

Published in:

Parallel and Distributed Systems, 2008. ICPADS '08. 14th IEEE International Conference on

Date of Conference:

8-10 Dec. 2008