3 research outputs found

    Constant RMR Group Mutual Exclusion for Arbitrarily Many Processes and Sessions

    Get PDF
    Group mutual exclusion (GME), introduced by Joung in 1998, is a natural synchronization problem that generalizes the classical mutual exclusion and readers and writers problems. In GME a process requests a session before entering its critical section; processes are allowed to be in their critical sections simultaneously provided they have requested the same session. We present a GME algorithm that (1) is the first to achieve a constant Remote Memory Reference (RMR) complexity for both cache coherent and distributed shared memory machines; and (2) is the first that can be accessed by arbitrarily many dynamically allocated processes and with arbitrarily many session names. Neither of the existing GME algorithms satisfies either of these two important properties. In addition, our algorithm has constant space complexity per process and satisfies the two strong fairness properties, first-come-first-served and first-in-first-enabled. Our algorithm uses an atomic instruction set supported by most modern processor architectures, namely: read, write, fetch-and-store and compare-and-swap

    A framework to study the performance of the group mutual exclusion algorithms

    Get PDF
    Group mutual exclusion problem generalizes the classical mutual exclusion problem, a fundamental problem in concurrent programming. It arises in applications involving sharing resources such as memory and data. In group mutual exclusion, a process requests for a “forum”; processes requesting the same forum may access the critical section simultaneously. Several algorithms have been proposed for the group mutual exclusion problem, but very few studies have been conducted to compare the performances of these algorithms by means of execution on actual machines. Besides the studies conducted have been a mere one-on-one comparison. Also, there exists no testing environment that accommodates multiple algorithms and compare their executions. This work aims at testing the performance of group mutual exclusion algorithms extensively by executing multiple such algorithms in a test framework. We propose to build an automated test framework to execute these algorithms, both individually and collectively under various experimental setups and observe their performances graphically using several performance metrics. Our experiments would constitute several collective comparison studies of algorithms along with replicating a few one-on-one comparison experiments from the literature. To use the algorithms into our framework, we intend to translate them from pseudo codes to source codes. The aim is to eventually creating a repository of these source codes such that they could be used for other applications besides our framework

    Group mutual exclusion by fetch-and-increment

    Get PDF
    The group mutual exclusion (GME) problem (also called the room synchronization problem) arises in various practical applications that require concurrent data sharing. Group mutual exclusion aims to achieve exclusive access to a shared resource (a shared room) while facilitating concurrency among non-conflicting requests. The problem is that threads with distinct interests are not allowed to access the shared resource concurrently, but multiple threads with same interest can. In Blelloch et al. (2003), the authors presented a simple solution to the room synchronization problem using fetch&add (F&A) and test-and-set (T&S) atomic operations. This algorithm has O(m) remote memory references (RMRs) in the cache coherent (CC) model, where m is the number of forums. In Bhatt and Huang (2010), an open problem was posed: "Is it possible to design a GME algorithm with constant RMR for the CC model using fetch&addinstructions?" This question is partially answered in this article by presenting a group mutual exclusion algorithm using fetch-and-increment instructions. The algorithm is simple and scalable
    corecore