416 lines
7.6 KiB
Plaintext
416 lines
7.6 KiB
Plaintext
#######################################
|
|
# Fischer's mutual exclusion protocol #
|
|
#######################################
|
|
# #
|
|
# przy setv1, setv2 - duza delta #
|
|
# przy enter1, enter2 - mala delta #
|
|
# #
|
|
# wzajemne wykluczanie przy: #
|
|
# #
|
|
# mala delta >= duza delta #
|
|
# #
|
|
#######################################
|
|
|
|
net {
|
|
actions {
|
|
start1;
|
|
setv1;
|
|
enter1;
|
|
setv01;
|
|
|
|
start2;
|
|
setv2;
|
|
enter2;
|
|
setv02;
|
|
|
|
start3;
|
|
setv3;
|
|
enter3;
|
|
setv03;
|
|
|
|
start4;
|
|
setv4;
|
|
enter4;
|
|
setv04;
|
|
|
|
start5;
|
|
setv5;
|
|
enter5;
|
|
setv05;
|
|
|
|
start6;
|
|
setv6;
|
|
enter6;
|
|
setv06;
|
|
|
|
start7;
|
|
setv7;
|
|
enter7;
|
|
setv07;
|
|
|
|
start8;
|
|
setv8;
|
|
enter8;
|
|
setv08;
|
|
|
|
start9;
|
|
setv9;
|
|
enter9;
|
|
setv09;
|
|
|
|
start10;
|
|
setv10;
|
|
enter10;
|
|
setv010;
|
|
};
|
|
|
|
automaton proc1 {
|
|
clocks {
|
|
x1;
|
|
};
|
|
locations {
|
|
idle1 { init; };
|
|
try1;
|
|
wait1;
|
|
crit1;
|
|
};
|
|
trans {
|
|
idle1 -> try1, start1, , { x1; };
|
|
try1 -> wait1, setv1, x1 < 1, { x1; };
|
|
wait1 -> crit1, enter1, x1 > 2, { };
|
|
crit1 -> idle1, setv01, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc2 {
|
|
clocks {
|
|
x2;
|
|
};
|
|
locations {
|
|
idle2 { init; };
|
|
try2;
|
|
wait2;
|
|
crit2;
|
|
};
|
|
trans {
|
|
idle2 -> try2, start2, , { x2; };
|
|
try2 -> wait2, setv2, x2 < 1, { x2; };
|
|
wait2 -> crit2, enter2, x2 > 2, { };
|
|
crit2 -> idle2, setv02, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc3 {
|
|
clocks {
|
|
x3;
|
|
};
|
|
locations {
|
|
idle3 { init; };
|
|
try3;
|
|
wait3;
|
|
crit3;
|
|
};
|
|
trans {
|
|
idle3 -> try3, start3, , { x3; };
|
|
try3 -> wait3, setv3, x3 < 1, { x3; };
|
|
wait3 -> crit3, enter3, x3 > 2, { };
|
|
crit3 -> idle3, setv03, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc4 {
|
|
clocks {
|
|
x4;
|
|
};
|
|
locations {
|
|
idle4 { init; };
|
|
try4;
|
|
wait4;
|
|
crit4;
|
|
};
|
|
trans {
|
|
idle4 -> try4, start4, , { x4; };
|
|
try4 -> wait4, setv4, x4 < 1, { x4; };
|
|
wait4 -> crit4, enter4, x4 > 2, { };
|
|
crit4 -> idle4, setv04, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc5 {
|
|
clocks {
|
|
x5;
|
|
};
|
|
locations {
|
|
idle5 { init; };
|
|
try5;
|
|
wait5;
|
|
crit5;
|
|
};
|
|
trans {
|
|
idle5 -> try5, start5, , { x5; };
|
|
try5 -> wait5, setv5, x5 < 1, { x5; };
|
|
wait5 -> crit5, enter5, x5 > 2, { };
|
|
crit5 -> idle5, setv05, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc6 {
|
|
clocks {
|
|
x6;
|
|
};
|
|
locations {
|
|
idle6 { init; };
|
|
try6;
|
|
wait6;
|
|
crit6;
|
|
};
|
|
trans {
|
|
idle6 -> try6, start6, , { x6; };
|
|
try6 -> wait6, setv6, x6 < 1, { x6; };
|
|
wait6 -> crit6, enter6, x6 > 2, { };
|
|
crit6 -> idle6, setv06, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc7 {
|
|
clocks {
|
|
x7;
|
|
};
|
|
locations {
|
|
idle7 { init; };
|
|
try7;
|
|
wait7;
|
|
crit7;
|
|
};
|
|
trans {
|
|
idle7 -> try7, start7, , { x7; };
|
|
try7 -> wait7, setv7, x7 < 1, { x7; };
|
|
wait7 -> crit7, enter7, x7 > 2, { };
|
|
crit7 -> idle7, setv07, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc8 {
|
|
clocks {
|
|
x8;
|
|
};
|
|
locations {
|
|
idle8 { init; };
|
|
try8;
|
|
wait8;
|
|
crit8;
|
|
};
|
|
trans {
|
|
idle8 -> try8, start8, , { x8; };
|
|
try8 -> wait8, setv8, x8 < 1, { x8; };
|
|
wait8 -> crit8, enter8, x8 > 2, { };
|
|
crit8 -> idle8, setv08, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc9 {
|
|
clocks {
|
|
x9;
|
|
};
|
|
locations {
|
|
idle9 { init; };
|
|
try9;
|
|
wait9;
|
|
crit9;
|
|
};
|
|
trans {
|
|
idle9 -> try9, start9, , { x9; };
|
|
try9 -> wait9, setv9, x9 < 1, { x9; };
|
|
wait9 -> crit9, enter9, x9 > 2, { };
|
|
crit9 -> idle9, setv09, , { };
|
|
};
|
|
};
|
|
|
|
automaton proc10 {
|
|
clocks {
|
|
x10;
|
|
};
|
|
locations {
|
|
idle10 { init; };
|
|
try10;
|
|
wait10;
|
|
crit10;
|
|
};
|
|
trans {
|
|
idle10 -> try10, start10, , { x10; };
|
|
try10 -> wait10, setv10, x10 < 1, { x10; };
|
|
wait10 -> crit10, enter10, x10 > 2, { };
|
|
crit10 -> idle10, setv010, , { };
|
|
};
|
|
};
|
|
|
|
automaton varV {
|
|
locations {
|
|
v0 { init; };
|
|
v1;
|
|
v2;
|
|
v3;
|
|
v4;
|
|
v5;
|
|
v6;
|
|
v7;
|
|
v8;
|
|
v9;
|
|
v10;
|
|
};
|
|
trans {
|
|
v0 -> v0, start1, , { };
|
|
v0 -> v0, start2, , { };
|
|
v0 -> v0, start3, , { };
|
|
v0 -> v0, start4, , { };
|
|
v0 -> v0, start5, , { };
|
|
v0 -> v0, start6, , { };
|
|
v0 -> v0, start7, , { };
|
|
v0 -> v0, start8, , { };
|
|
v0 -> v0, start9, , { };
|
|
v0 -> v0, start10, , { };
|
|
v0 -> v1, setv1, , { };
|
|
v0 -> v2, setv2, , { };
|
|
v0 -> v3, setv3, , { };
|
|
v0 -> v4, setv4, , { };
|
|
v0 -> v5, setv5, , { };
|
|
v0 -> v6, setv6, , { };
|
|
v0 -> v7, setv7, , { };
|
|
v0 -> v8, setv8, , { };
|
|
v0 -> v9, setv9, , { };
|
|
v0 -> v10, setv10, , { };
|
|
|
|
v1 -> v0, setv01, , { };
|
|
v1 -> v1, enter1, , { };
|
|
v1 -> v1, setv1, , { };
|
|
v1 -> v2, setv2, , { };
|
|
v1 -> v3, setv3, , { };
|
|
v1 -> v4, setv4, , { };
|
|
v1 -> v5, setv5, , { };
|
|
v1 -> v6, setv6, , { };
|
|
v1 -> v7, setv7, , { };
|
|
v1 -> v8, setv8, , { };
|
|
v1 -> v9, setv9, , { };
|
|
v1 -> v10, setv10, , { };
|
|
|
|
v2 -> v0, setv02, , { };
|
|
v2 -> v1, enter2, , { };
|
|
v2 -> v1, setv1, , { };
|
|
v2 -> v2, setv2, , { };
|
|
v2 -> v3, setv3, , { };
|
|
v2 -> v4, setv4, , { };
|
|
v2 -> v5, setv5, , { };
|
|
v2 -> v6, setv6, , { };
|
|
v2 -> v7, setv7, , { };
|
|
v2 -> v8, setv8, , { };
|
|
v2 -> v9, setv9, , { };
|
|
v2 -> v10, setv10, , { };
|
|
|
|
v3 -> v0, setv03, , { };
|
|
v3 -> v1, enter3, , { };
|
|
v3 -> v1, setv1, , { };
|
|
v3 -> v2, setv2, , { };
|
|
v3 -> v3, setv3, , { };
|
|
v3 -> v4, setv4, , { };
|
|
v3 -> v5, setv5, , { };
|
|
v3 -> v6, setv6, , { };
|
|
v3 -> v7, setv7, , { };
|
|
v3 -> v8, setv8, , { };
|
|
v3 -> v9, setv9, , { };
|
|
v3 -> v10, setv10, , { };
|
|
|
|
v4 -> v0, setv04, , { };
|
|
v4 -> v1, enter4, , { };
|
|
v4 -> v1, setv1, , { };
|
|
v4 -> v2, setv2, , { };
|
|
v4 -> v3, setv3, , { };
|
|
v4 -> v4, setv4, , { };
|
|
v4 -> v5, setv5, , { };
|
|
v4 -> v6, setv6, , { };
|
|
v4 -> v7, setv7, , { };
|
|
v4 -> v8, setv8, , { };
|
|
v4 -> v9, setv9, , { };
|
|
v4 -> v10, setv10, , { };
|
|
|
|
v5 -> v0, setv05, , { };
|
|
v5 -> v1, enter5, , { };
|
|
v5 -> v1, setv1, , { };
|
|
v5 -> v2, setv2, , { };
|
|
v5 -> v3, setv3, , { };
|
|
v5 -> v4, setv4, , { };
|
|
v5 -> v5, setv5, , { };
|
|
v5 -> v6, setv6, , { };
|
|
v5 -> v7, setv7, , { };
|
|
v5 -> v8, setv8, , { };
|
|
v5 -> v9, setv9, , { };
|
|
v5 -> v10, setv10, , { };
|
|
|
|
v6 -> v0, setv06, , { };
|
|
v6 -> v1, enter6, , { };
|
|
v6 -> v1, setv1, , { };
|
|
v6 -> v2, setv2, , { };
|
|
v6 -> v3, setv3, , { };
|
|
v6 -> v4, setv4, , { };
|
|
v6 -> v5, setv5, , { };
|
|
v6 -> v6, setv6, , { };
|
|
v6 -> v7, setv7, , { };
|
|
v6 -> v8, setv8, , { };
|
|
v6 -> v9, setv9, , { };
|
|
v6 -> v10, setv10, , { };
|
|
|
|
v7 -> v0, setv07, , { };
|
|
v7 -> v1, enter7, , { };
|
|
v7 -> v1, setv1, , { };
|
|
v7 -> v2, setv2, , { };
|
|
v7 -> v3, setv3, , { };
|
|
v7 -> v4, setv4, , { };
|
|
v7 -> v5, setv5, , { };
|
|
v7 -> v6, setv6, , { };
|
|
v7 -> v7, setv7, , { };
|
|
v7 -> v8, setv8, , { };
|
|
v7 -> v9, setv9, , { };
|
|
v7 -> v10, setv10, , { };
|
|
|
|
v8 -> v0, setv08, , { };
|
|
v8 -> v1, enter8, , { };
|
|
v8 -> v1, setv1, , { };
|
|
v8 -> v2, setv2, , { };
|
|
v8 -> v3, setv3, , { };
|
|
v8 -> v4, setv4, , { };
|
|
v8 -> v5, setv5, , { };
|
|
v8 -> v6, setv6, , { };
|
|
v8 -> v7, setv7, , { };
|
|
v8 -> v8, setv8, , { };
|
|
v8 -> v9, setv9, , { };
|
|
v8 -> v10, setv10, , { };
|
|
|
|
v9 -> v0, setv09, , { };
|
|
v9 -> v1, enter9, , { };
|
|
v9 -> v1, setv1, , { };
|
|
v9 -> v2, setv2, , { };
|
|
v9 -> v3, setv3, , { };
|
|
v9 -> v4, setv4, , { };
|
|
v9 -> v5, setv5, , { };
|
|
v9 -> v6, setv6, , { };
|
|
v9 -> v7, setv7, , { };
|
|
v9 -> v8, setv8, , { };
|
|
v9 -> v9, setv9, , { };
|
|
v9 -> v10, setv10, , { };
|
|
|
|
v10 -> v0, setv010, , { };
|
|
v10 -> v1, enter10, , { };
|
|
v10 -> v1, setv1, , { };
|
|
v10 -> v2, setv2, , { };
|
|
v10 -> v3, setv3, , { };
|
|
v10 -> v4, setv4, , { };
|
|
v10 -> v5, setv5, , { };
|
|
v10 -> v6, setv6, , { };
|
|
v10 -> v7, setv7, , { };
|
|
v10 -> v8, setv8, , { };
|
|
v10 -> v9, setv9, , { };
|
|
v10 -> v10, setv10, , { };
|
|
|
|
};
|
|
};
|
|
|
|
}; |