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

Server Model

Server(server, client, count, wait) :<=>
   exists i in [1,C]:
         receivei(server, request)  /\ count > 0  /\ 
            sendi(client, grant)  /\ count' = count-1  /\ 
            changed(server, client, count)
         receivei(server, request)  /\   count > 0  /\ 
            wait' = wait[i |-> true]  /\ 
            changed(server, wait)
         receivei(server, release)  /\ exists j in [1,C]: (wait[j]  /\ 
            sendj(client, grant)  /\ wait' = wait[j |-> true])  /\ 
            changed(server, client, wait)
         receivei(server, release)  /\   exists j in [1,C]: wait[j]  /\ 
            count' = count+1  /\ 
            changed(server, count)
a server action
receive request and return grant
receive request and defer reply
receive release and send deferred grant
receive release and increase counter

Result of a systematic design.

Author: Wolfgang Schreiner
Last Modification: April 22, 1999

previous up next