home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
cs.rhul.ac.uk
/
www.cs.rhul.ac.uk.zip
/
www.cs.rhul.ac.uk
/
pub
/
CS375
/
peterson1.fdr2
< prev
next >
Wrap
Text File
|
1999-01-22
|
3KB
|
94 lines
channel p1setflag1, p1resetflag1, p2setflag1, p2resetflag1,
p1gettrueflag1, p1getfalseflag1, p2gettrueflag1, p2getfalseflag1,
p1setflag2, p1resetflag2, p2setflag2, p2resetflag2,
p1gettrueflag2, p1getfalseflag2, p2gettrueflag2, p2getfalseflag2,
p1set1turn, p1set2turn, p2set1turn, p2set2turn,
p1get1turn, p1get2turn, p2get1turn, p2get2turn,
p1enter, p1critical, p1leave,
p2enter, p2critical, p2leave
FLAG1 = FLAG1FALSE
FLAG1FALSE = p1getfalseflag1 -> FLAG1FALSE
[] p2getfalseflag1 -> FLAG1FALSE
[] p1setflag1 -> FLAG1TRUE
[] p2setflag1 -> FLAG1TRUE
[] p1resetflag1 -> FLAG1FALSE
[] p2resetflag1 -> FLAG1FALSE
FLAG1TRUE = p1gettrueflag1 -> FLAG1TRUE
[] p2gettrueflag1 -> FLAG1TRUE
[] p1resetflag1 -> FLAG1FALSE
[] p2resetflag1 -> FLAG1FALSE
[] p1setflag1 -> FLAG1TRUE
[] p2setflag1 -> FLAG1TRUE
FLAG2 = FLAG2FALSE
FLAG2FALSE = p1getfalseflag2 -> FLAG2FALSE
[] p2getfalseflag2 -> FLAG2FALSE
[] p1setflag2 -> FLAG2TRUE
[] p2setflag2 -> FLAG2TRUE
[] p1resetflag2 -> FLAG2FALSE
[] p2resetflag2 -> FLAG2FALSE
FLAG2TRUE = p1gettrueflag2 -> FLAG2TRUE
[] p2gettrueflag2 -> FLAG2TRUE
[] p1resetflag2 -> FLAG2FALSE
[] p2resetflag2 -> FLAG2FALSE
[] p1setflag2 -> FLAG2TRUE
[] p2setflag2 -> FLAG2TRUE
TURN = TURNONE
TURNONE = p1get1turn -> TURNONE
[] p2get1turn -> TURNONE
[] p1set1turn -> TURNONE
[] p2set1turn -> TURNONE
[] p1set2turn -> TURNTWO
[] p2set2turn -> TURNTWO
TURNTWO = p1get2turn -> TURNTWO
[] p2get2turn -> TURNTWO
[] p1set1turn -> TURNONE
[] p2set1turn -> TURNONE
[] p1set2turn -> TURNTWO
[] p2set2turn -> TURNTWO
P1 = p1setflag1 -> p1set2turn -> P1WAIT
P1WAIT = p1gettrueflag2 -> (p1get2turn -> P1WAIT
[] p1get1turn -> P1ENTER)
[] p1getfalseflag2 -> P1ENTER
P1ENTER = p1enter -> p1critical -> p1leave -> p1resetflag1 -> P1
P2 = p2setflag2 -> p2set1turn -> P2WAIT
P2WAIT = p2gettrueflag1 -> (p2get1turn -> P2WAIT
[] p2get2turn -> P2ENTER)
[] p2getfalseflag1 -> P2ENTER
P2ENTER = p2enter -> p2critical -> p2leave -> p2resetflag2 -> P2
aP1 = {| p1setflag1,p1resetflag1,p1gettrueflag1,p1getfalseflag1,
p1setflag2,p1resetflag2,p1gettrueflag2,p1getfalseflag2,
p1set1turn,p1set2turn,p1get1turn,p1get2turn,
p1enter,p1critical,p1leave |}
aP2 = {| p2setflag1,p2resetflag1,p2gettrueflag1,p2getfalseflag1,
p2setflag2,p2resetflag2,p2gettrueflag2,p2getfalseflag2,
p2set1turn,p2set2turn,p2get1turn,p2get2turn,
p2enter,p2critical,p2leave |}
aF1 = {| p1setflag1,p1resetflag1,p1gettrueflag1,p1getfalseflag1,
p2setflag1,p2resetflag1,p2gettrueflag1,p2getfalseflag1 |}
aF2 = {| p1setflag2,p1resetflag2,p1gettrueflag2,p1getfalseflag2,
p2setflag2,p2resetflag2,p2gettrueflag2,p2getfalseflag2 |}
aT = {| p1set1turn,p1set2turn,p1get1turn,p1get2turn,
p2set1turn,p2set2turn,p2get1turn,p2get2turn |}
PROCS = P1 [ aP1 || aP2 ] P2
FLAGS = FLAG1 [ aF1 || aF2 ] FLAG2
VARS = FLAGS [ union(aF1,aF2) || aT ] TURN
SYSTEM = PROCS [ union(aP1,aP2) || union(union(aF1,aF2),aT) ] VARS