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

Designing the Server

Need to be careful on receipt of release messages:

ServerC,R(server, client, counter, wait) :<=>
   exists i in [1,C]:
      or
         receivei(server, release)  /\   exists j in [1,C]: wait[j]  /\ 
            count' = count+1  /\ 
            changed(server, count)
         receivei(server, release)  /\ exists j in [1,C]: (wait[j]  /\ 
            sendj(client, grant)  /\ wait' = wait[j |-> false])  /\ 
            changed(server, client, wait)
         ...
 

Resulting server maintains invariant.


Author: Wolfgang Schreiner
Last Modification: April 22, 1999

previous up next