|Building a Model with Elementary Components|
|Server||provides service for a transaction|
|MServer||provides service simultaneously for multiple transactions|
The Server holds the transaction while it is served. The service time can be a sample of a random variable (from one of several distributions), a fixed amount, or the value of a variable read from a SAS data set. By default, the service time is an observation of an exponential random variable with parameter 1.
An MServer, or multiple-server, can service multiple transactions simultaneously. The capacity of an MServer is set using the slider labeled "Capacity" on its control panel.
Notice that in the lower-right corner of the server components, there is a small rectangle. This is a Balk node. If a transaction arrives at a Server when it is busy or at an MServer when it is at capacity, the transaction will flow out the Balk node. Consider, for example, a situation where transactions are either serviced upon arrival by server 1 or, if server 1 is not free, wait for service from server 2. This is modeled by the network in Figure 2.4.
When the transaction leaves the Server or MServer, it has an attribute as named in the control panel that contains the time that the transaction spent in the server. This attribute can be used for controlling the simulation logic and for measuring the performance of the simulation by displaying it in one of the chart components or saving it in a SAS data set.
The following documents the logic of the server components:
If the server is busy, at capacity, or stopped, the transaction flows out the Balk node; otherwise, service is scheduled. On service completion, a request for transaction message is sent to arcs directed into the server. If a transaction is found, then its flow is initiated. Regardless, the transaction that just finished service flows on each of the arcs directed out of the server.
If the server is not busy or stopped, then pass on the request to all arcs directed into the server. The order in which the requests for service are issued is determined by the order of the components in the "Pull from" list box on the Sever Control Panel. Also, if a component is not included in the "Pull from" list box, then the request for transaction message is not propagated on the arc leading to that component.
If the server is not busy and not stopped, then return FALSE; otherwise, return TRUE.
|busy||returns TRUE if the Server is busy or the MServer|
|is at capacity or either is stopped; else, returns FALSE.|
|capacityIs||returns the capacity of the MServer|
|full||returns TRUE if the Server is busy or the MServer|
|is at capacity; else, returns FALSE.|
|id||returns the server's unique identifier.|
|off||returns TRUE if the Server or MServer is stopped.|
|sizeIs||returns the number of multiple-server units that are busy.|
|space||returns TRUE if the Server is free or the MServer|
|is not at capacity; else, return FALSE.|
|preempt||removes all the transactions that are being served. They flow|
|out of the Balk node.|
|preemptContinue||removes all the transactions that are being served.|
|They flow out of the Balk node. The server requests transactions from|
|removeIt||removes the transaction at the Trigger, if it is also being served.|
|It flows out of the Balk node.|
|reset||resets the Sever and MServer destroying all waiting transactions.|
|seize||attempts to obtain service for the transaction that arrived at|
|setCapacity||sets the MSever capacity from the transaction|
|setDistribution||sets the distribution from the transaction attribute "distribution."|
|setParameter1||sets the first parameter in the distribution from the|
|transaction attribute "parameter1."|
|setParameter2||sets the second parameter in the distribution from the|
|transaction attribute "parameter2."|
|start||starts the Server component.|
|stop||stops the Server component. Transactions in service have|
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.