This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
A Simple Local-Spin Group Mutual Exclusion Algorithm
July 2001 (vol. 12 no. 7)
pp. 673-685

Abstract—This paper presents a new solution to the group mutual exclusion problem recently posed by Joung. In this problem, processes repeatedly request access to various “sessions.” It is required that distinct processes are not in different sessions concurrently, that multiple processes may be in the same session concurrently, and that each process that tries to enter a session is eventually able to do so. This problem is a generalization of the mutual exclusion and readers-writers problems. Our algorithm and its correctness proof are substantially simpler than Joung's. This simplicity is achieved by building upon known solutions to the more specific mutual exclusion problem. Our algorithm also has various advantages over Joung's, depending on the choice of mutual exclusion algorithm used. These advantages include admitting a process to its session in constant time in the absence of contention, spinning locally in Cache Coherent (CC) and Nonuniform Memory Access (NUMA) systems, and improvements in the complexity measures proposed by Joung.

[1] Y. Afek, D. Dauber, and D. Touitou, “Wait-free Made Fast,” Proc. 27th Annual ACM Symp. Theory of Computing, pp. 538-547, 1995.
[2] Y. Afek, D. Dolev, E. Gafni, M. Merritt, and N. Shavit, “A Bounded First-In, First-Enabled Solution to the$\ell\hbox{-}{\rm{exclusion}}$Problem,” ACM Trans. Programming Languages and Systems, vol. 16, no. 3, pp. 939-953, 1994.
[3] J. Anderson and M. Moir, “Universal Constructions for Large Objects,” Proc. Ninth Int'l Workshop on Distributed Algorithms, pp. 168-182, 1995.
[4] J. Anderson and M. Moir, “Using Local-Spin$k\hbox{-}{\rm{exclusion}}$Algorithms to Improve Wait-Free Object Implementations,” Distributed Computing, vol. 11, pp. 1-20, 1997, a preliminary version appeared in, Proc. 13th Ann. ACM Symp. Principles of Distributed Computing, pp. 141-150, 1994.
[5] T.E. Anderson,“The performance of spin lock alternatives for shared memory multiprocessors,” IEEE Trans. Parallel and Distributed Systems, vol. 1, no. 1, pp. 6-16, 1990.
[6] P.J. Courtois, F. Heymans, and D.L. Parnas, “Concurrent Control with Readers and Writers,” Comm. ACM, vol. 14, no. 10, pp. 667-668, 1971.
[7] E.W. Dijkstra, “Solution of a Problem in Concurrent Programming Control,” Comm. ACM, vol. 8, no. 9, p. 569, Sept. 1965.
[8] M. Fischer, N. Lynch, J. Burns, and A. Borodin, “Resource Allocation with Immunity to Process Failure,” Proc. 20th Ann. IEEE Symp. Foundations of Computer Science, pp. 234-254, 1979.
[9] M. Fischer, N. Lynch, J. Burns, and A. Borodin, “Distributed FIFO Allocation of Identical Resources Using Small Shared Space,” ACM Trans. Programming Languages and Systems, vol. 11, no. 1, pp. 9-14, 1989.
[10] G. Graunke and S. Thakkar, “Synchronization Algorithms for Shared-Memory Multiprocessors,” IEEE Computer, vol. 23, pp. 60-69, 1990.
[11] Y.-J. Joung, “Asynchronous Group Mutual Exclusion (extended abstract),” Proc. 17th Ann. ACM Symp. Principles of Distributed Computing, pp. 51-60, June 1998.
[12] P. Keane and M. Moir, “A Simple Local-Spin Group Mutual Exclusion Algorithm,” Proc. 18th Ann. ACM Symp. Principles of Distributed Computing, pp. 23-32, 1999.
[13] P. Keane and M. Moir, “A Simple, Local-Spin Group Mutual Exclusion Algorithm,” Technical Report TR-99-4, Dept. of Computer Science, Univ. of Pittsburgh, 1999.
[14] L. Lamport,“The mutual exclusion problem: Part II-Statement and solutions,” J. Assoc. for Computing Machinery, vol. 33, no. 2, pp. 327-348, 1986.
[15] L. Lamport, “A Fast Mutual Exclusion Algorithm,” ACM Trans. Computer Systems, vol. 5, no. 1, pp. 1–11, 1987.
[16] J. M. Mellor-Crummey and M. L. Scott,“Algorithms for scalable synchronization on shared-memory multiprocessors,”ACM Trans. Comput. Syst., vol, 9, no. 1, pp. 21–65, Feb. 1991.
[17] M. Moir, “Practical Implementations of Synchronization Primitives,” Proc. 16th Ann. ACM Symp. Principles of Distributed Computing, pp. 219-228, 1997.
[18] A.-T. Nguyen, M.M. Michael, A.D. Sharma,, and J. Torrellas, “The Augmint Multiprocessor Simulation Toolkit for Intel x86 Architectures,” Proc. 1996 IEEE Int'l Conf. Computer Design, Oct. 1996.
[19] J.-H. Yang and J. Anderson, “A Fast, Scalable Mutual Exclusion Algorithm,” Distributed Computing, vol. 9, pp. 51-60, 1995.

Index Terms:
Mutual exclusion, local spinning, scalable, shared memory, synchronization.
Citation:
Patrick Keane, Mark Moir, "A Simple Local-Spin Group Mutual Exclusion Algorithm," IEEE Transactions on Parallel and Distributed Systems, vol. 12, no. 7, pp. 673-685, July 2001, doi:10.1109/71.940743
Usage of this product signifies your acceptance of the Terms of Use.