Event scheduling in ExtendSim as compared to other simulation tools.
In other simulation tools, the items (also referred to as entities or transactions) are put on the event calendar (scheduled for future consideration when a time delay is encountered). In ExtendSim, the blocks have an entry on the event calendar. Some blocks contain their own event calendars with an entry for each item in the block.
Scheduling the blocks rather than the items has a number of advantages:
Because there are typically fewer event scheduling blocks in the model than there are items to be scheduled and the number of event scheduling blocks in a model does not change, the ExtendSim event calendar is relatively small. This eliminates the need for time consuming insertion and deletion of events on the calendar. This is particularly important in large model where searching the event calendar for the next event can be a large portion of the execution time.
It is very easy to change the event time. Because the block’s event time is stored in a fixed location, the future event time for the block can be changed with a simple assignment.
Items are not necessary for an event. A block can schedule an event without needing to create (and then dispose of) an item.
Any block in the model can schedule an event. This makes it particularly easy to build modeling components which simulate system features such as preemption and reneging. These types of features normally require internal or dummy items in other simulation tools.