Research Article

A Hybrid Distributed Mutual Exclusion Algorithm for Cluster-Based Systems

Algorithm 2

Raysuz’s algorithm for ordinary node.
Step  1. Upon or and receives request from
1.1 if   then
  1.1.1 enqueue to RaymQ
  1.1.2  if !Asked
   1.1.2.1 send own request to Dir
   1.1.2.2 set Asked True
  1.1.3 end if
1.2 else
  1.2.1 increase corresponding request array element by 1
1.3 end if
Step  2. Upon or and receives ExToken
2.1 set Asked False
2.2 dequeue RaymQ and set Dir with dequeued node
2.3 send ExToken to Dir
2.4 if  RaymQ.length 1 then
  2.4.1 send ExReq to Dir
  2.4.2 set Asked True
2.5 end if
Step  3. Upon and receives Pulse
3.1 increase corresponding request array element by 1 and broadcast request
3.2  
Step  4. Upon receives InToken for and SuzQ.length = 0
4.1 enter CS
4.2 update SuzQ
4.3 send InToken to head of SuzQ
4.4 set Dir as head
Step  5. Upon receives InToken for and SuzQ.length 0
5.1 enter CS
5.2 update SuzQ
5.3  
Step  6. Upon receives request from
6.1  if   then
  6.1.1 enqueue to RaymQ
  6.1.2  if !Asked
   6.1.2.1 send own request to Dir
   6.1.2.2 set Asked True
  6.1.3 end if
6.2 else
  6.2.1 increase corresponding request array element by 1
  6.2.2 update SuzQ
  6.2.3 send InToken to
  6.2.4  
6.3 end if
Step  7. Upon and receives Pulse
 7.1 enter CS