Raymond's algorithm

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.

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.

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.