Encyclopedia of Algorithms

Living Edition
| Editors: Ming-Yang Kao

Mellor-Crummey and Scott Mutual Exclusion Algorithm

  • Danny ​HendlerEmail author
Living reference work entry
DOI: https://doi.org/10.1007/978-3-642-27848-8_605-1

Years and Authors of Summarized Original Work

1991; Mellor-Crummey, Scott

Problem Definition

Mutual exclusion is a fundamental concurrent programming problem (see Concurrent Programming, Mutual Exclusion entry), in which a set of processes must coordinate their access to a critical section so that, at any point in time, at most a single process is in the critical section.

To a large extent, shared-memory mutual exclusion research focused on busy-waiting mutual exclusion, in which, while waiting for the critical section to be freed, processes repeatedly test the values of shared-memory variables. A significant portion of this research over the last two decades was devoted to local-spin algorithms [2], in which all busy-waiting is done by means of read-only loops that repeatedly test locally accessible variables.

Local-Spin Algorithms and the RMRs Metric

A natural way to measure the time complexity of algorithms in shared-memory multiprocessors is to count the number of memory accesses...


Critical section Local spinning MCS lock Queue lock Remote memory references (RMRs) 
This is a preview of subscription content, log in to check access.

Recommended Reading

  1. 1.
    Alur R, Taubenfeld G (1992) Results about fast mutual exclusion. In: Proceedings of the 13th IEEE real-time systems symposium, Phoenix, pp 12–21Google Scholar
  2. 2.
    Anderson TE (1990) The performance of spin lock alternatives for shared-memory multiprocessors. IEEE Trans Parallel Distrib Syst 1(1):6–16CrossRefGoogle Scholar
  3. 3.
    Anderson JH (1993) A fine-grained solution to the mutual exclusion problem. Acta Inf 30(3):249–265CrossRefzbMATHGoogle Scholar
  4. 4.
    Anderson J, Kim YJ (2002) An improved lower bound for the time complexity of mutual exclusion. Distrib Comput 15(4):221–253CrossRefGoogle Scholar
  5. 5.
    Kim Y-J, Anderson JH (2006) Nonatomic mutual exclusion with local spinning. Distrib Comput 19(1):19–61CrossRefzbMATHGoogle Scholar
  6. 6.
    Anderson J, Kim YJ, Herman T (2003) Shared-memory mutual exclusion: major research trends since 1986. Distrib Comput 16:75–110CrossRefGoogle Scholar
  7. 7.
    Attiya H, Hendler D, Woelfel P (2008) Tight RMR lower bounds for mutual exclusion and other problems. In: STOC, Victoria, pp 217–226Google Scholar
  8. 8.
    Craig T (1993) Building FIFO and priority-queuing spin locks from atomic swap. Technical reportGoogle Scholar
  9. 9.
    Danek R, Golab WM (2010) Closing the complexity gap between FCFS mutual exclusion and mutual exclusion. Distrib Comput 23(2):87–111CrossRefzbMATHGoogle Scholar
  10. 10.
    Dice D, Marathe VJ, Shavit N (2012) Lock cohorting: a general technique for designing NUMA locks. In: PPOPP, New Orleans, pp 247–256Google Scholar
  11. 11.
    Golab WM, Hendler D, Woelfel P (2010) An O(1) RMRS leader election algorithm. SIAM J Comput 39(7):2726–2760MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Graunke G, Thakkar SS (1990) Synchronization algorithms for shared-memory multiprocessors. IEEE Comput 23(6):60–69CrossRefGoogle Scholar
  13. 13.
    Kim YJ, Anderson JH (2007) Adaptive mutual exclusion with local spinning. Distrib Comput 19(3):197–236CrossRefGoogle Scholar
  14. 14.
    Kim YJ, Anderson JH (2012) A time complexity lower bound for adaptive mutual exclusion. Distrib Comput 24(6):271–297CrossRefzbMATHGoogle Scholar
  15. 15.
    Lamport L (1974) A new solution of Dijkstra’s concurrent programming problem. Commun ACM 17(8):453–455MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Luchangco V, Nussbaum D, Shavit N (2006) A hierarchical CLH queue lock. In: Euro-Par, Dresden, pp 801–810Google Scholar
  17. 17.
    Magnusson P, Landin A, Hagersten E (1994) Queue locks on cache coherent multiprocessors. In: IPPS, Cancún. IEEE Computer Society, pp 165–171Google Scholar
  18. 18.
    Mellor-Crummey JM, Scott ML (1991) Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Trans Comput Syst 9(1):21–65. doi:10.1145/103727.103729, http://doi.acm.org/10.1145/103727.103729
  19. 19.
    Radovic Z, Hagersten E (2003) Hierarchical backoff locks for nonuniform communication architectures. In: HPCA, Anaheim, pp 241–252Google Scholar
  20. 20.
    Yang JH, Anderson J (1995) A fast, scalable mutual exclusion algorithm. Distrib Comput 9(1):51–60CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  1. 1.Department of Computer Science, Ben-Gurion University of the NegevBeer-ShevaIsrael