Years and Authors of Summarized Original Work
1965; Dijkstra
Problem Definition
Concurrency, Synchronization and Resource Allocation
A concurrent system is a collection of processors that communicate by reading and writing from a shared memory. A distributed system is a collection of processors that communicate by sending messages over a communication network. Such systems are used for various reasons: to allow a large number of processors to solve a problem together much faster than any processor can do alone, to allow the distribution of data in several locations, to allow different processors to share resources such as data items, printers or discs, or simply to enable users to send electronic mail.
A process corresponds to a given computation. That is, given some program, its execution is a process. Sometimes, it is convenient to refer to the program code itself as a process. A process runs on a processor, which is the physical hardware. Several processes can run on the same...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Recommended Reading
Afek Y, Stupp G, Touitou D (2002) Long lived adaptive splitter and applications. Distrib Comput 30:67–86
Alur R, Taubenfeld G (1992) Results about fast mutual exclusion. In: Proceedings of the 13th IEEE real-time systems symposium, Dec 1992, pp 12–21
Anderson JH, Kim Y-J (2000) Adaptive mutual exclusion with local spinning. In: Proceedings of the 14th international symposium on distributed computing, Lecture notes in computer science, vol 1914, pp 29–43
Anderson TE (1990) The performance of spin lock alternatives for shared-memory multiprocessor. IEEE Trans Parallel Distrib Syst 1(1):6–16
Burns JN, Lynch NA (1993) Bounds on shared-memory for mutual exclusion. Inf Comput 107(2):171–184
Dijkstra EW (1965) Solution of a problem in concurrent programming control. Commun ACM 8(9):569
Dijkstra EW (1968) Co-operating sequential processes. In: Genuys F (ed) Programming languages. Academic, New York, pp 43–112. Reprinted from: technical report EWD-123, Technological University, Eindhoven (1965)
Graunke G, Thakkar S (1990) Synchronization algorithms for shared-memory multiprocessors. IEEE Comput 28(6):69–69
Lamport L (1974) A new solution of Dijkstra's concurrent programming problem. Commun ACM 17(8):453–455
Lamport L (1987) A fast mutual exclusion algorithm. ACM Trans Comput Syst 5(1):1–11
Mellor-Crummey JM, Scott ML (1991) Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Trans Comput Syst 9(1):21–65
Raynal M (1986) Algorithms for mutual exclusion. MIT, Cambridge. Translation of: Algorithmique du parallélisme (1984)
Singhal M (1993) A taxonomy of distributed mutual exclusion. J Parallel Distrib Comput 18(1):94–101
Taubenfeld G (2004) The black-white bakery algorithm. In: 18th international symposium on distributed computing, Oct 2004. LNCS, vol 3274. Springer, Berlin, pp 56–70
Taubenfeld G (2006) Synchronization algorithms and concurrent programming. Pearson Education/Prentice-Hall, Upper Saddle River. ISBN:0131972596
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer Science+Business Media New York
About this entry
Cite this entry
Taubenfeld, G. (2016). Concurrent Programming, Mutual Exclusion. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-2864-4_88
Download citation
DOI: https://doi.org/10.1007/978-1-4939-2864-4_88
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4939-2863-7
Online ISBN: 978-1-4939-2864-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering