Chapter Contents
Chapter Contents
Building a Model with Elementary Components

Server Components

Server components model a resource used by a transaction for a specified amount of time. There are two types of servers: Server and MServer.

server.gif (959 bytes)Serverprovides service for a transaction
mserver.gif (983 bytes)MServerprovides 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.

cpmserve.gif (6170 bytes)

Figure 2.3: The Multiple-Server 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.

serverba.gif (2505 bytes)

Figure 2.4: Server Balk Model

The following documents the logic of the server components:

Transaction Arrival

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.

Request for Transaction

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.

Are You Busy Message

If the server is not busy and not stopped, then return FALSE; otherwise, return TRUE.

Query Message

Keyword Meaning
busyreturns TRUE if the Server is busy or the MServer
 is at capacity or either is stopped; else, returns FALSE.
capacityIsreturns the capacity of the MServer
fullreturns TRUE if the Server is busy or the MServer
 is at capacity; else, returns FALSE.
idreturns the server's unique identifier.
offreturns TRUE if the Server or MServer is stopped.
sizeIsreturns the number of multiple-server units that are busy.
spacereturns TRUE if the Server is free or the MServer
 is not at capacity; else, return FALSE.

Trigger Message

Keyword Meaning
preemptremoves all the transactions that are being served. They flow
 out of the Balk node.
preemptContinueremoves all the transactions that are being served.
 They flow out of the Balk node. The server requests transactions from
 upstream components.
removeItremoves the transaction at the Trigger, if it is also being served.
 It flows out of the Balk node.
resetresets the Sever and MServer destroying all waiting transactions.
seizeattempts to obtain service for the transaction that arrived at
 the Trigger.
setCapacitysets the MSever capacity from the transaction
 attribute "capacity."
setDistributionsets the distribution from the transaction attribute "distribution."
setParameter1sets the first parameter in the distribution from the
 transaction attribute "parameter1."
setParameter2sets the second parameter in the distribution from the
 transaction attribute "parameter2."
startstarts the Server component.
stopstops the Server component. Transactions in service have
 normal completion.

Chapter Contents
Chapter Contents

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.