|On this page…|
In a discrete-event simulation, a server stores entities for some length of time, called the service time, and then attempts to output the entity. During the service period, the block is said to be serving the entity that it stores. An everyday example of a server is a person (a bank teller, a retail cashier, etc.) with whom you perform a transaction with a projected duration.
The service time for each entity is computed when it arrives, which contrasts with the inherent unknowability of the storage time for entities in queues. If the next block does not accept the arrival of an entity that has completed its service, however, then the server is forced to hold the entity longer.
Distinguishing features of different servers include
The number of entities it can serve simultaneously, which could be finite or infinite
Characteristics of, or the method of computing, the service times of arriving entities
Whether the server permits certain arriving entities to preempt entities that are already stored in the server
Tip In the absence of preemption, a finite-capacity server does not accept new arrivals when it is already full. You can place a queue before each finite-capacity server, establishing a place for entities to stay while they are waiting for the server to accept them. Otherwise, the waiting entities might be stored in various different locations in the model and the situation might be more difficult for you to predict or analyze.
In some cases, a server in a model is similar to an analogous aspect of the real-world system being modeled. For example, you might use a server to represent
A person (such as a bank teller) who performs a transaction with each arriving customer
A transmitter that processes and sends messages
A machine that assembles parts in a factory
A computer that executes programs
You might use an infinite-capacity server to represent a delaying mechanism. An example of this is in the subsystem in Build a Hybrid Model.
In some cases, a server in a model does not arise in an obvious way from the real-world system but instead is included for modeling purposes. A common modeling technique involves a delay of duration zero, that is, an infinite server whose service time is zero, either to break an algebraic loop or to provide a place for an entity to reside while a preceding block updates its output signals. For details and examples, see Interleaving of Block Operations and Loops in Entity Paths Without Sufficient Storage Capacity.