Mutual Exclusion: Difference between revisions

From Algorithm Wiki
Jump to navigation Jump to search
(Created page with "== Problem Description== Mutual exclusion is a property of process synchronization which states that “no two processes can exist in the critical section at any given point of time”. The term was first coined by Djikstra. == Bounds Chart == 1050px == Step Chart == 1050px == Improvement Table == {| class="wikitable" style="text-align:center;" width="100%" !width="20%" | Complexity Clas...")
 
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Problem Description==
{{DISPLAYTITLE:Mutual Exclusion (Mutual Exclusion)}}
Mutual exclusion is a property of process synchronization which states that “no two processes can exist in the critical section at any given point of time”. The term was first coined by Djikstra.
== Description ==  


== Bounds Chart ==
Mutual exclusion is a property of concurrency control; which is instituted for the purpose of preventing race conditions.
[[File:Mutual_ExclusionBoundsChart.png|1050px]]


== Step Chart ==
== Parameters ==  
[[File:Mutual_ExclusionStepChart.png|1050px]]


== Improvement Table ==
$n$: number of processors
{| class="wikitable" style="text-align:center;" width="100%"  
 
!width="20%" | Complexity Classes !! width="40%" | Algorithm Paper Links !! width="40%" | Lower Bounds Paper Links
== Table of Algorithms ==  
|-
 
| rowspan="1" | Exp/Factorial
{| class="wikitable sortable" style="text-align:center;" width="100%"
|
 
|
! Name !! Year !! Time !! Space !! Approximation Factor !! Model !! Reference
 
|-
 
| [[Lamport's bakery algorithm ( Mutual Exclusion)|Lamport's bakery algorithm]] || 1974 || $O(n)$ || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [http://lamport.azurewebsites.net/pubs/bakery.pdf Time] & [https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.825&rep=rep1&type=pdf Space]
|-
| [[Szymanski's algorithm ( Mutual Exclusion)|Szymanski's algorithm]] || 1988 || $O(n)$ || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://www.researchgate.net/publication/221235887_A_simple_solution_to_Lamport's_concurrent_programming_problem_with_linear_wait Time] & [http://cs.rpi.edu/~szymansk/papers/jerus.93.pdf Space]
|-
| [[Taubenfeld's black-white bakery algorithm ( Mutual Exclusion)|Taubenfeld's black-white bakery algorithm]] || 2004 || $O(n)$ || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://link.springer.com/chapter/10.1007/978-3-540-30186-8_5 Time] & [https://link.springer.com/content/pdf/10.1007/b101206.pdf Space]
|-
| [[Maekawa's algorithm ( Mutual Exclusion)|Maekawa's algorithm]] || 1985 || $O(n^{0.5})$ || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://cseweb.ucsd.edu/classes/wi09/cse223a/p145-maekawa.pdf Time] & [https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.825&rep=rep1&type=pdf Space]
|-
| [[Raymond's algorithm ( Mutual Exclusion)|Raymond's algorithm]] || 1997 || $O(\log n)$? (originally this had $O(n)$) || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://dl.acm.org/doi/abs/10.1145/58564.59295 Time] & [https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.825&rep=rep1&type=pdf Space]
|-
|-
| rowspan="1" | Polynomial > 3
| [[Suzuki-Kasami's algorithm ( Mutual Exclusion)|Suzuki-Kasami's algorithm]] || 1985 || $O(n)$? (originally this had $O(logn)$) || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://cse.iitkgp.ac.in/~agupta/distsys/Mutex-SuzukiKasami.pdf Time] & [https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.135.825&rep=rep1&type=pdf Space]
|
|
|-
|-
| rowspan="1" | Cubic
| [[Dekker's algorithm (2-thread Mutual Exclusion Mutual Exclusion)|Dekker's algorithm]] || 1963 || $O(n)$ ||  || Exact || Deterministic || 
|
|
|-
|-
| rowspan="1" | Quadratic
| [[Peterson's algorithm ( Mutual Exclusion)|Peterson's algorithm]] || 1981 || $O(n)$ || $O(n)$ total || Exact || Deterministic || [https://zoo.cs.yale.edu/classes/cs323/doc/Peterson.pdf Time]
|
|
|-
|-
| rowspan="1" | nlogn
| [[Naimi-Trehel's algorithm ( Mutual Exclusion)|Naimi-Trehel's algorithm]] || 1996 || $O(\log n)$ || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://www.sciencedirect.com/science/article/abs/pii/S0743731596900416 Time]
|
|
|-
|-
| rowspan="1" | Linear
| [[Chan-Singhal-Liu ( Mutual Exclusion)|Chan-Singhal-Liu]] || 1990 || $O(\log n)$ || $O({1})$ per process, $O(n)$ total? || Exact || Deterministic || [https://ieeexplore.ieee.org/document/113817 Time]
| [- Dekker's algorithm (1963)]
 
[https://zoo.cs.yale.edu/classes/cs323/doc/Peterson.pdf Peterson's algorithm (1981)]
 
[http://lamport.azurewebsites.net/pubs/bakery.pdf Lamport's bakery algorithm (1974)]
 
[https://www.researchgate.net/publication/221235887_A_simple_solution_to_Lamport's_concurrent_programming_problem_with_linear_wait Szymanski's algorithm (1988)]
 
[https://link.springer.com/chapter/10.1007/978-3-540-30186-8_5 Taubenfeld's black-white bakery algorithm (2004)]
 
[ Raymond's algorithm (1997)]
 
[https://cseweb.ucsd.edu/classes/wi09/cse223a/p145-maekawa.pdf Maekawa's algorithm (1985)]
|
|-
|-
| rowspan="1" | logn
|}
| [https://www.sciencedirect.com/science/article/abs/pii/S0743731596900416 Naimi-Trehel's algorithm (1996)]


[https://cse.iitkgp.ac.in/~agupta/distsys/Mutex-SuzukiKasami.pdf Suzuki-Kasami's algorithm (1985)]
== Time Complexity Graph ==


[https://ieeexplore.ieee.org/document/113817 Chan-Singhal-Liu (1990)]
[[File:Mutual Exclusion - Time.png|1000px]]
|
|-|}

Latest revision as of 10:07, 28 April 2023

Description

Mutual exclusion is a property of concurrency control; which is instituted for the purpose of preventing race conditions.

Parameters

$n$: number of processors

Table of Algorithms

Name Year Time Space Approximation Factor Model Reference
Lamport's bakery algorithm 1974 $O(n)$ $O({1})$ per process, $O(n)$ total? Exact Deterministic Time & Space
Szymanski's algorithm 1988 $O(n)$ $O({1})$ per process, $O(n)$ total? Exact Deterministic Time & Space
Taubenfeld's black-white bakery algorithm 2004 $O(n)$ $O({1})$ per process, $O(n)$ total? Exact Deterministic Time & Space
Maekawa's algorithm 1985 $O(n^{0.5})$ $O({1})$ per process, $O(n)$ total? Exact Deterministic Time & Space
Raymond's algorithm 1997 $O(\log n)$? (originally this had $O(n)$) $O({1})$ per process, $O(n)$ total? Exact Deterministic Time & Space
Suzuki-Kasami's algorithm 1985 $O(n)$? (originally this had $O(logn)$) $O({1})$ per process, $O(n)$ total? Exact Deterministic Time & Space
Dekker's algorithm 1963 $O(n)$ Exact Deterministic
Peterson's algorithm 1981 $O(n)$ $O(n)$ total Exact Deterministic Time
Naimi-Trehel's algorithm 1996 $O(\log n)$ $O({1})$ per process, $O(n)$ total? Exact Deterministic Time
Chan-Singhal-Liu 1990 $O(\log n)$ $O({1})$ per process, $O(n)$ total? Exact Deterministic Time

Time Complexity Graph

Mutual Exclusion - Time.png