---------- [CONFIGURATION] ---------- action 0 takes 1 units of time to execute action 1 takes 1 units of time to execute action 2 takes 1 units of time to execute action 3 takes 1 units of time to execute action 0 and action 2 share token 0 action 1 and action 2 share token 1 action 1 and action 3 share token 2 action 2 and action 3 share token 3 ---------- [Alg1 STEP 0] ---------- action 0 is holding tokens 0 action 1 is holding tokens 1,2 action 2 is holding tokens 3 action 3 is holding tokens action 0 received a request from action 2 for token 0 action 1 received a request from action 3 for token 2 action 0 is executing action 1 is executing ---------- [Alg1 STEP 1] ---------- action 0 is holding tokens action 1 is holding tokens 1 action 2 is holding tokens 0,3 action 3 is holding tokens 2 action 2 received a request from action 0 for token 0 action 3 received a request from action 1 for token 2 action 2 is sending request to action 1 for token 1 action 3 is sending request to action 2 for token 3 ---------- [Alg1 STEP 2] ---------- action 0 is holding tokens action 1 is holding tokens 1 action 2 is holding tokens 0,3 action 3 is holding tokens 2 action 1 received a request from action 2 for token 1 action 2 received a request from action 0 for token 0 action 2 received a request from action 3 for token 3 action 3 received a request from action 1 for token 2 ---------- [Alg1 STEP 3] ---------- action 0 is holding tokens action 1 is holding tokens 1 action 2 is holding tokens 0 action 3 is holding tokens 2,3 action 1 received a request from action 2 for token 1 action 2 received a request from action 0 for token 0 action 3 received a request from action 1 for token 2 action 3 is executing ---------- [Alg1 STEP 4] ---------- action 0 is holding tokens action 1 is holding tokens 1,2 action 2 is holding tokens 0 action 3 is holding tokens 3 action 1 received a request from action 2 for token 1 action 1 received a request from action 3 for token 2 action 2 received a request from action 0 for token 0 action 1 is executing ---------- [Alg1 STEP 5] ---------- action 0 is holding tokens action 1 is holding tokens action 2 is holding tokens 0,1 action 3 is holding tokens 2,3 action 2 received a request from action 0 for token 0 action 2 received a request from action 1 for token 1 action 2 is sending request to action 3 for token 3 action 3 is executing ---------- [Alg1 STEP 6] ---------- action 0 is holding tokens action 1 is holding tokens action 2 is holding tokens 0,1 action 3 is holding tokens 2,3 action 2 received a request from action 0 for token 0 action 2 received a request from action 1 for token 1 action 3 received a request from action 2 for token 3 action 3 is executing ---------- [Alg1 STEP 7] ---------- action 0 is holding tokens action 1 is holding tokens action 2 is holding tokens 0,1,3 action 3 is holding tokens 2 action 2 received a request from action 0 for token 0 action 2 received a request from action 1 for token 1 action 2 received a request from action 3 for token 3 action 2 is executing ---------- [SUMMARY of Alg1] ---------- concurrency for step 0: 2 concurrency for step 1: 0 concurrency for step 2: 0 concurrency for step 3: 1 concurrency for step 4: 1 concurrency for step 5: 1 concurrency for step 6: 1 concurrency for step 7: 1 action 0 executed 1 times action 1 executed 2 times action 2 executed 1 times action 3 executed 3 times total number of action executions: 7 total number of messages sent: 4 total amount of concurrency: 7/32 = 21% fairness in execution: 1/3 = 33% fairness in execution steps: 1/3 = 33%