Skip to main content

Mellor-Crummey and Scott Mutual Exclusion Algorithm

  • Reference work entry
  • First Online:
Encyclopedia of Algorithms
  • 72 Accesses

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...

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,599.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,999.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Recommended Reading

  1. Alur R, Taubenfeld G (1992) Results about fast mutual exclusion. In: Proceedings of the 13th IEEE real-time systems symposium, Phoenix, pp 12–21

    Google Scholar 

  2. Anderson TE (1990) The performance of spin lock alternatives for shared-memory multiprocessors. IEEE Trans Parallel Distrib Syst 1(1):6–16

    Article  Google Scholar 

  3. Anderson JH (1993) A fine-grained solution to the mutual exclusion problem. Acta Inf 30(3):249–265

    Article  MathSciNet  MATH  Google Scholar 

  4. Anderson J, Kim YJ (2002) An improved lower bound for the time complexity of mutual exclusion. Distrib Comput 15(4):221–253

    Article  Google Scholar 

  5. Kim Y-J, Anderson JH (2006) Nonatomic mutual exclusion with local spinning. Distrib Comput 19(1):19–61

    Article  MATH  Google Scholar 

  6. Anderson J, Kim YJ, Herman T (2003) Shared-memory mutual exclusion: major research trends since 1986. Distrib Comput 16:75–110

    Article  Google Scholar 

  7. Attiya H, Hendler D, Woelfel P (2008) Tight RMR lower bounds for mutual exclusion and other problems. In: STOC, Victoria, pp 217–226

    MATH  Google Scholar 

  8. Craig T (1993) Building FIFO and priority-queuing spin locks from atomic swap. Technical report

    Google Scholar 

  9. Danek R, Golab WM (2010) Closing the complexity gap between FCFS mutual exclusion and mutual exclusion. Distrib Comput 23(2):87–111

    Article  MATH  Google Scholar 

  10. Dice D, Marathe VJ, Shavit N (2012) Lock cohorting: a general technique for designing NUMA locks. In: PPOPP, New Orleans, pp 247–256

    Google Scholar 

  11. Golab WM, Hendler D, Woelfel P (2010) An O(1) RMRS leader election algorithm. SIAM J Comput 39(7):2726–2760

    Article  MathSciNet  MATH  Google Scholar 

  12. Graunke G, Thakkar SS (1990) Synchronization algorithms for shared-memory multiprocessors. IEEE Comput 23(6):60–69

    Article  Google Scholar 

  13. Kim YJ, Anderson JH (2007) Adaptive mutual exclusion with local spinning. Distrib Comput 19(3):197–236

    Article  MATH  Google Scholar 

  14. Kim YJ, Anderson JH (2012) A time complexity lower bound for adaptive mutual exclusion. Distrib Comput 24(6):271–297

    Article  MATH  Google Scholar 

  15. Lamport L (1974) A new solution of Dijkstra’s concurrent programming problem. Commun ACM 17(8):453–455

    Article  MathSciNet  MATH  Google Scholar 

  16. Luchangco V, Nussbaum D, Shavit N (2006) A hierarchical CLH queue lock. In: Euro-Par, Dresden, pp 801–810

    Google Scholar 

  17. Magnusson P, Landin A, Hagersten E (1994) Queue locks on cache coherent multiprocessors. In: IPPS, Cancún. IEEE Computer Society, pp 165–171

    Google Scholar 

  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

    Article  Google Scholar 

  19. Radovic Z, Hagersten E (2003) Hierarchical backoff locks for nonuniform communication architectures. In: HPCA, Anaheim, pp 241–252

    Google Scholar 

  20. Yang JH, Anderson J (1995) A fast, scalable mutual exclusion algorithm. Distrib Comput 9(1):51–60

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Danny Hendler .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer Science+Business Media New York

About this entry

Cite this entry

Hendler, D. (2016). Mellor-Crummey and Scott Mutual Exclusion Algorithm. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-2864-4_605

Download citation

Publish with us

Policies and ethics