Content deleted Content added
Corrected See Also link for Nami-Trehel's Algorithm to point to existing Wikipedia page. |
|||
(56 intermediate revisions by 37 users not shown) | |||
Line 1:
{{Short description|Algorithm for mutual exclusion on a distributed system}}
{{more citations needed|date=December 2009}}
The '''Ricart–Agrawala algorithm''' is an algorithm for [[mutual exclusion]] on a [[distributed system]]. This algorithm is an extension and optimization of [[Lamport's Distributed Mutual Exclusion Algorithm]], by removing the need for release messages.<ref>{{cite journal|last1=Ricart|first1=Glenn|last2=Agrawala|first2=Ashok K.|title=An optimal algorithm for mutual exclusion in computer networks|journal=Communications of the ACM|date=1 January 1981|volume=24|issue=1|pages=9–17|doi=10.1145/358527.358537|s2cid=1779615|ref=origpaper|doi-access=free}}</ref> It was developed by computer scientists [[Glenn Ricart]] and [[Ashok Agrawala]].
▲== Algorithm ==
=== Terminology ===
* A ''site'' is any computing device which
*
===
''' Requesting Site
* Sends a message to all sites. This message includes the site's name, and the current timestamp of the system according to its [[logical clock]] (''which is assumed to be synchronized with the other sites'')
''' Receiving Site
* Upon reception of a
:*
:* the receiving process has a lower priority (''usually this means having a later timestamp)
* Otherwise,
''' Critical Section: '''
*
* Upon exiting the critical section,
===
*
* Synchronization Delays: One message propagation delay
===
Once site <math>P_i</math> has received a <math>reply</math> message from site <math>P_j</math>, site <math>P_i</math> may enter the critical section multiple times without receiving permission from <math>P_j</math>
▲=== Problems ===
One of the problems in this algorithm is failure of a node. In such a situation a process may starve forever.
This problem can be solved by detecting failure of nodes after some timeout.
==
* [[Lamport's bakery algorithm
* [[Lamport's
* [[Maekawa's
* [[
* [[Raymond's
* [[Naimi–Trehel algorithm|Naimi–Trehel's algorithm]]
==References==
[[Category:Distributed algorithms]]▼
{{Reflist}}
*Maekawa, M., Oldehoeft, A., Oldehoeft, R.(1987). Operating Systems: Advanced Concept.Benjamin/Cummings Publishing Company, Inc.
▲[[Category:Distributed algorithms]]
|