Abstract
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.
Similar content being viewed by others
References
Alagarsamy K.: A mutual exclusion algorithm with optimally bounded bypasses. Inf. Process. Lett. 96, 36–40 (2005)
Anderson J.H., Kim Y.J., Herman T.: Shared-memory mutual exclusion: major research trends since 1986. Distr. Comput. 16, 75–110 (2003)
Block K., Woo T.-K.: A more efficient generalization of Peterson’s mutual exclusion algorithm. Inf. Process. Lett. 35, 219–222 (1990)
Chandy K.M., Misra J.: Parallel Program Design, A Foundation. Addison-Wesley, Reading (1988)
Dijkstra E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8, 569 (1965)
Frenzel, L.E.: Dual-port SRAM accelerates smart-phone development. Electron. Des. (2004)
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)
Hesselink W.H.: An assertional proof for a construction of an atomic variable. Formal Asp. Comput. 16, 387–393 (2004)
Hesselink W.H.: A criterion for atomicity revisited. Acta Inf. 44, 123–151 (2007)
Holzmann G.J.: The SPIN Model Checker, Primer and Reference Manual. Addison-Wesley, Reading (2004)
Igarashi Y., Nishitani Y.: Speedup of the n-process mutual exclusion algorithm. Parallel Process. Lett. 9, 475–485 (1999)
Lamport L.: A new solution of Dijkstra’s concurrent programming problem. Commun. ACM 17, 453–455 (1974)
Lamport L.: On interprocess communication. Parts I and II. Distr. Comput. 1, 77–101 (1986)
Lamport L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16, 872–923 (1994)
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)
Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Version 2.4, System Guide, Prover Guide, PVS Language Reference (2001). http://pvs.csl.sri.com
Peterson G.L.: Myths about the mutual exclusion problem. Inf. Process. Lett. 12, 115–116 (1981)
Raynal M.: Algorithms for Mutual Exclusion. MIT Press, Cambridge (1986)
Shiue W.-T., Chakrabarti C.: Multi-module multi-port memory design for low power embedded systems. Des. Autom. Embed. Syst. 9, 235–261 (2004)
Springer, C.: Enabling multimode handsets. EE Times, Oct. 2004
Taubenfeld G.: Synchronization Algorithms and Concurrent Programming. Pearson Education/Prentice Hall, Englewood Cliffs (2006)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Aravind, A.A., Hesselink, W.H. A queue based mutual exclusion algorithm. Acta Informatica 46, 73–86 (2009). https://doi.org/10.1007/s00236-008-0086-z
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-008-0086-z