A queue based mutual exclusion algorithm
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.
KeywordsShared Variable Mutual Exclusion Concurrent Programming Read Action Abstract Algorithm
Unable to display preview. Download preview PDF.
- 6.Frenzel, L.E.: Dual-port SRAM accelerates smart-phone development. Electron. Des. (2004)Google Scholar
- 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
- 10.Holzmann G.J.: The SPIN Model Checker, Primer and Reference Manual. Addison-Wesley, Reading (2004)Google Scholar
- 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.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
- 20.Springer, C.: Enabling multimode handsets. EE Times, Oct. 2004Google Scholar
- 21.Taubenfeld G.: Synchronization Algorithms and Concurrent Programming. Pearson Education/Prentice Hall, Englewood Cliffs (2006)Google Scholar