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