Acta Informatica

, Volume 46, Issue 1, pp 73–86 | Cite as

A queue based mutual exclusion algorithm

  • Alex A. Aravind
  • Wim H. Hesselink
Original Article


A new elegant and simple algorithm for mutual exclusion of N processes is proposed. It only requires shared variables in a memory model where shared variables need not be accessed atomically. We prove mutual exclusion by reformulating the algorithm as a transition system (automaton), and applying simulation of automata. The proof has been verified with the higher-order interactive theorem prover PVS. Under an additional atomicity assumption, the algorithm is starvation free, and we conjecture that no competing process is passed by any other process more than once. This conjecture was verified by model checking for systems with at most five processes.


Shared Variable Mutual Exclusion Concurrent Programming Read Action Abstract Algorithm 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alagarsamy K.: A mutual exclusion algorithm with optimally bounded bypasses. Inf. Process. Lett. 96, 36–40 (2005)CrossRefMathSciNetGoogle Scholar
  2. 2.
    Anderson J.H., Kim Y.J., Herman T.: Shared-memory mutual exclusion: major research trends since 1986. Distr. Comput. 16, 75–110 (2003)CrossRefGoogle Scholar
  3. 3.
    Block K., Woo T.-K.: A more efficient generalization of Peterson’s mutual exclusion algorithm. Inf. Process. Lett. 35, 219–222 (1990)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Chandy K.M., Misra J.: Parallel Program Design, A Foundation. Addison-Wesley, Reading (1988)zbMATHGoogle Scholar
  5. 5.
    Dijkstra E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8, 569 (1965)CrossRefGoogle Scholar
  6. 6.
    Frenzel, L.E.: Dual-port SRAM accelerates smart-phone development. Electron. Des. (2004)Google Scholar
  7. 7.
    He J., Hoare C.A.R., Sanders J.W.: Data refinement refined. In: Robinet, B., Wilhelm, R. (eds) ESOP 86. Lecture notes in computer science, vol 213, pp. 187–196. Springer, New York (1986)Google Scholar
  8. 8.
    Hesselink W.H.: An assertional proof for a construction of an atomic variable. Formal Asp. Comput. 16, 387–393 (2004)zbMATHCrossRefGoogle Scholar
  9. 9.
    Hesselink W.H.: A criterion for atomicity revisited. Acta Inf. 44, 123–151 (2007)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Holzmann G.J.: The SPIN Model Checker, Primer and Reference Manual. Addison-Wesley, Reading (2004)Google Scholar
  11. 11.
    Igarashi Y., Nishitani Y.: Speedup of the n-process mutual exclusion algorithm. Parallel Process. Lett. 9, 475–485 (1999)CrossRefGoogle Scholar
  12. 12.
    Lamport L.: A new solution of Dijkstra’s concurrent programming problem. Commun. ACM 17, 453–455 (1974)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Lamport L.: On interprocess communication. Parts I and II. Distr. Comput. 1, 77–101 (1986)zbMATHCrossRefGoogle Scholar
  14. 14.
    Lamport L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16, 872–923 (1994)CrossRefGoogle Scholar
  15. 15.
    Milner, R.: An algebraic definition of simulation between programs. In: Proc. 2nd Int. Joint Conf. on Artificial Intelligence, pp. 481–489. British Computer Society, UK (1971)Google Scholar
  16. 16.
    Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Version 2.4, System Guide, Prover Guide, PVS Language Reference (2001).
  17. 17.
    Peterson G.L.: Myths about the mutual exclusion problem. Inf. Process. Lett. 12, 115–116 (1981)zbMATHCrossRefGoogle Scholar
  18. 18.
    Raynal M.: Algorithms for Mutual Exclusion. MIT Press, Cambridge (1986)zbMATHGoogle Scholar
  19. 19.
    Shiue W.-T., Chakrabarti C.: Multi-module multi-port memory design for low power embedded systems. Des. Autom. Embed. Syst. 9, 235–261 (2004)CrossRefGoogle Scholar
  20. 20.
    Springer, C.: Enabling multimode handsets. EE Times, Oct. 2004Google Scholar
  21. 21.
    Taubenfeld G.: Synchronization Algorithms and Concurrent Programming. Pearson Education/Prentice Hall, Englewood Cliffs (2006)Google Scholar

Copyright information

© Springer-Verlag 2008

Authors and Affiliations

  1. 1.Computer Science ProgramUniversity of Northern British ColumbiaPrince GeorgeCanada
  2. 2.Department of Computing ScienceUniversity of GroningenGroningenThe Netherlands

Personalised recommendations