Go backward to System Model Go up to Top Go forward to Solution Idea |
Clienti(pc, server, client) :<=>
or
(1) pci = other /\ pc'i =
request /\
changed(pc)
(2) pci = request /\ pc'i =
grant /\
sendi(server, request) /\ changed(pc, server)
(3) pci = grant /\ pc'i =
resource /\
receivei(client, grant) /\ changed(pc, client)
(4) pci = resource /\ pc'i =
release /\
changed(pc)
(5) pci = release /\ pc'i =
other /\
sendi(server, release) /\ changed(pc, server)
Client(server, client):
loop
... other
send(server, request) request
grant := receive(client) grant
... resource
send(server, release) release
end
sendi(c, m) :<=>
c' = c[i |-> c[i] || <m>]
receivei(c, m) :<=>
c = c'[i |-> <m>|| c'[i]]
changed(v1, ..., vn) :<=>
(for all program variables v except for v1, ..., vn)
and
v' = v
...