previous up next
Go backward to Refining the Invariant
Go up to Top
Go forward to Designing the Server
RISC-Linz logo

Designing the Server

Server must maintain invariant and imply progress:

ServerC,R(server, client, counter) :<=>
   exists i in [1,C]:
      or
         receivei(server, release)  /\ 
            count' = count+1  /\ 
            changed(server, count)
         receivei(server, request)  /\ count > 0  /\ 
            sendi(client, grant)  /\ count' = count-1  /\ 
            changed(server, client, count)
         receivei(server, request)  /\ count <=0  /\ 
            ...
 
 
 
receive a release message and increase counter
 
 
send a grant message and decrease counter
 
 
what now?

Need possibility to defer grant messages.


Author: Wolfgang Schreiner
Last Modification: April 22, 1999

previous up next