Research Article
A Hybrid Distributed Mutual Exclusion Algorithm for Cluster-Based Systems
Algorithm 1
Raysuz’s algorithm for leader node.
Step 1. Upon a leader receives request from process and | 1.1 if | 1.1.1 add to RaymQ | 1.1.2 send 's request to Dir (as an external request) | 1.2 else | 1.2.1 increase corresponding request array element by 1 | 1.2.2 enqueue RaymQ with | 1.2.3 send ExReq to Dir | 1.3 end if | 1.4 | Step 2. Upon a receive request from process | 2.1 if then | 2.1.1 increase element of request array and broadcast request | 2.1.2 enqueue to RaymQ | 2.1.3 | 2.2 else | 2.2.1 increase element of request array by 1 | 2.3 end if | Step 3. Upon a receive InToken for | 3.1 if RaymQ.length 1 or SuzQ.length 1 then | 3.1.1 update SuzQ | 3.1.2 dequeue RaymQ and set Dir with dequeued node | 3.1.3 send ExToken and ExReq to Dir | 3.1.4 enqueue RaymQ with | 3.1.5 | 3.2 else | 3.2.1 update SuzQ | 3.2.2 dequeue RaymQ and set Dir with dequeued node | 3.2.3 send ExToken to Dir | 3.2.4 | 3.3 end if | Step 4. Upon a receive request from | 4.1 if then | 4.1.1 add to RaymQ | 4.2 else | 4.2.1 increase jth element of request array | 4.3 end if | Step 5. Upon a and receives request from | 5.1 if | 5.1.1 enqueue to RaymQ | 5.2 else | 5.2.1 increase corresponding request array element by 1 | 5.2.2 Update SuzQ | 5.3 end if | Step 6. Upon a and receives ExToken for | 6.1 update SuzQ and last and add them in InToken |
|