The principles of discrete-event simulation (DES) can be represented by following concept.
A traffic light will be considered as an example.
In DES, a process is understood as a sequence of actions that fully or partially describes the behavior of the object under study.
Traffic light actions are the sequential switching on of light of a specific color after a certain time interval.
This color switching is the DES process for traffic light.
A process in DES can be active or suspended.
Only one process can be active at any given time.
The active process is also called current process.
If the current process activates another process, the current process becomes suspended.
For example, an active traffic light process can activate a vehicle moving process when green is turned on.
In this case, the traffic light process is suspended and the vehicle movement process becomes active.
If several processes are to be executed simultaneously, they are nevertheless activated sequentially at a specific model time.
What determines that a process should be activated at a specific model time is called an event.
The event concept is the cornerstone of DES.
If the state of a process does not change, then no events occur for that process.
This means that there is no need to simulate the entire time of the process, but only that specific quantum of model time (event) when the process should be activated.
If there is no event, no simulation action is performed.
This important DES concept significantly reduces the execution time of a model in computer simulation.
For the traffic light example, only the events when the light color changes should be simulated.
During the time between switches, the traffic light process does nothing, and this time is out of interest.
Therefore, every event in DES should be associated with a process being activated, and the simulation software must know at what time which process should be activated.
But the events should somehow be scheduled to activate a specific process at the right time.
Since DES operates on events, information about them should be stored and ordered somewhere.
For these purposes, a special list is used. It is called an event list (in Simula it is called a sequential set).
The event list consists of items containing event information: the process to be activated and the value of the model time at which this event should occur.
Such an item is called an event notice.
Placing an event notice in the event list is called event planning or event scheduling.
Items are sorted in the event list in ascending order of event time.
The first item contains the earliest event, the last one the latest.
Every time a new event should be planned for some process, an event notice is created and inserted into event list at the position in accordance with the event time.
The simulation looks like a loop where the number of repetitions is equal (generally) to the number of generated entities.
It is as follows:
By activation of the first process (usually a generator), a new event notice is created and inserted into event list (yet empty).
Simulation loop The process of the first event notice is activated.
Appropriate process behavior actions are performed.
If this process has a time pause in behavior description or another process should be activated,
then current process is suspended at this point and its next active phase is planned:
Current event notice (first item) is taken out from event list.
The item is updated with the new time value when this process will be activated again (after pause or after another process suspending) and inserted into event list at a specific position.
If a new process is activated from the current one, a new event notice with the current model
time value is created for this process and inserted first into event list.
The simulation continues with a simulation loop.