Raymond's Algorithm is a lock based algorithm for mutual exclusion on a distributed system. It imposes a logical structure (a K-ary tree) on distributed resources. As defined, each node has only a single parent, to which all requests to attain the token are made.

Algorithm

edit

Nodal properties

edit
  1. Each node has only one parent to whom received requests are forwarded
  2. Each node maintains a FIFO queue of requests each time that it sees the token;
  3. If any node is forwarding privilege to other node and has non-empty queue then it forwards a request message along

Algorithm

edit
  1. If a node i (not holding the token) wishes to receive the token in order to enter into its critical section, it sends a request to its parent, node j.
    • If node j FIFO is empty, node j shifts i into its FIFO queue; j then issues a request to its parent, k, that it desires the token
    • If node j FIFO queue is not empty, it simply shifts i into the queue
  2. When node k has token and receives the request from j it sends token to j and sets j as its parent
  3. When node j receives the token from k, it forwards the token to i and i is removed from the queue of j
    • If the queue of j is not empty after forwarding the token to i, j must issue a request to i in order to get the token back

Note: If j wishes to request a token, and its queue is not empty, then it places itself into its own queue. Node j will utilize the token to enter into its critical section if it is at the head of the queue when the token is received.

Complexity

edit

Raymond's algorithm is guaranteed to be O(log n) per critical section entry if the processors are organized into a K-ary tree. Additionally, each processor needs to store at most O(log n) bits because it must track O(1) neighbors.[1]

References

edit
  1. ^ R. Chow, T. Johnson; Distributed Operating Systems & Algorithms; Addison-Wesley, 1997.

See also

edit

📚 Artikel Terkait di Wikipedia

List of algorithms

An algorithm is a fundamental set of rules or defined procedures that are typically designed and used to be a simpler way to solve a specific problem

Ricart–Agrawala algorithm

The Ricart–Agrawala algorithm is an algorithm for mutual exclusion on a distributed system. This algorithm is an extension and optimization of Lamport's

Lamport's distributed mutual exclusion algorithm

Ricart–Agrawala algorithm (an improvement over Lamport's algorithm) Lamport's bakery algorithm Raymond's algorithm Maekawa's algorithm Suzuki–Kasami algorithm Naimi–Trehel

Shor's algorithm

Shor's algorithm is a quantum algorithm for finding the prime factors of an integer. It was developed in 1994 by the American mathematician Peter Shor

Maekawa's algorithm

Maekawa's algorithm is an algorithm for mutual exclusion on a distributed system. The basis of this algorithm is a quorum-like approach where any one

Government by algorithm

also referred to as algorithmic regulation, regulation by algorithms, algorithmic governance, algocratic governance, algorithmic legal order, or algocracy

Fast Fourier transform

A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT), or its inverse (IDFT), of a sequence. A Fourier transform

Kahan summation algorithm

In numerical analysis, the Kahan summation algorithm, also known as compensated summation, significantly reduces the numerical error in the total obtained