You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
622 B
34 lines
622 B
|
|
ma
|
|
|
|
const double rateProcessing = 2;
|
|
const double rateA = 1;
|
|
const double rateB = 1;
|
|
|
|
module server
|
|
|
|
s : [0..5]; // current state:
|
|
// 0: wait for request
|
|
// 1: received request from A
|
|
// 2: received request from B
|
|
// 3: starting to process request of B
|
|
// 4: processing request
|
|
// 5: error
|
|
|
|
|
|
|
|
<> s=0 -> rateA : (s'=1) + rateB : (s'=2);
|
|
[alpha] s=1 -> 1 : (s'=4);
|
|
[alpha] s=2 -> 1 : (s'=3);
|
|
[beta] s=2 -> 0.5 : (s'=0) + 0.5 : (s'=3);
|
|
[] s=3 -> 1 : (s'=4);
|
|
<> s=4 -> rateProcessing : (s'=0) + (rateA+rateB) : (s'=5);
|
|
<> s=5 -> 1 : true;
|
|
|
|
endmodule
|
|
|
|
|
|
label "error" = (s=5);
|
|
label "processB" = (s=3);
|
|
|
|
|