written 8.5 years ago by |
Event scheduling simulation is modelling over time of a system whose state changes at discrete points in time.
A discrete event simulation proceeds by producing a sequence of system snapshots that represent the evolution of the system through time.
The modeler concentrates on process, which can be called as a lifecycle of one entity.
A process is a time-sequenced list of events, activities, and delays, including demands for resources that define the lifecycle of one entity as it moves through a system. An example of customer process is shown in the figure.
In this figure we can see the interaction two customer processes as customer n+1 is delayed until the previous customer’s “end service event” occur.
Usually many process are active simultaneously in a model and their interactions is could be complex.
Both the event scheduling and the process interactions uses variable time advance algorithm. A process interaction uses three steps
Future Event List (FEL)
Current Event List(CEL)
Process interaction model
FEL:
A given snapshot at a given time includes system state at time t and future event list (FEL).
The FEL contains all previously scheduled future events and their associated event times.
Events in FEL are arranged according to chronological order- that is, the event times must satisfy t<=$t_1$<=$t_2$<=$t_3$<=…$t_n$.
CEL:
The CEL is a list of transactions are arranged by decreasing priority. Subsequently
All transactions on FEL with move time equal to current time will move to CEL.
During scan phase CEL is searched from beginning till end from transactions which can be moved through the model.
If a transaction is found it is moved as far as possible through the model.
The scan phase is repeated as long as it is possible to move transactions through the model. When no more transactions can be moved and the simulation condition does not evaluate to true the clock update phase is invoked again.
The termination condition is often encoded as a global termination counter being decremented to zero and below.
It is obvious that blocked transactions may reside on CEL well beyond their move time, waiting for some system condition.
Before completely terminating a simulation, performance metrics are output and data structures are cleaned up.