written by Dave Krahl, QMT Group
ExtendSim
 has a number of features that provide additional control over the 
sequence and scheduling of events as well as the transmission of 
messages. These include:
- Scheduling a 0 time event in an equation before it is evaluated. This provides the ability to delay the calculation of the equation and any subsequent messages sent by the equation returning control to the block that initiated the calculation. This can be implemented in custom blocks as well.
 - Detailed control of messages in the equation and custom blocks. Whether or not a connector responds to a message is a user-defined option.
 - In custom blocks, there are message handlers for every type of interaction. These can be used to control how other messages are sent out.
 
While
 there are numerous tools for solving race condition problems, the 
biggest challenge is detecting them in the first place. This often 
requires detailed inspection of the results of an event in the 
simulation. Some tools available for this in ExtendSim are:
- Tracing of simulation execution
 - Enabling debugging code and in particular examining the "stack" of function calls and message handlers
 - Animation of item movement
 - Record Message block in the ExtendSim Utilities library shows sequences of messages
 - History block that shows item movement and properties.
 
Race
 conditions are an artifact of discrete event simulation as a 
technology. This issue is something that every experienced simulation 
modeler has encountered in their modeling experience. Identifying the 
race condition can be challenging. However, tools exist in simulation 
programs to address any race condition problems and control the 
execution of the model.
No comments:
Post a Comment