This example shows how to use SimEvents to model a process such as the boarding of an aircraft. The process consists of multiple activities such as "Disembark", "SecurityCheck", "Refueling" etc. Some activities can be done concurrently, as represented by multiple parallel paths using AND blocks. Some activities are mutually exclusive and these are represented as output paths using OR blocks. Each activity takes up non-zero time. You can use such a model to study various aspects of a process, such as bottlenecks, resource contention, latencies, etc. The model generates a single entity at the start of simulation. This entity represents the control flow in the process. The position of the entity in the model determines which activity is currently running.
Use an Entity Server block to model an activity. The service time is a randomized number with a specified mean value. Activities can be sequential, concurrent, or mutually exclusive with respect to each other.
Activities that are chained to each other are considered sequential. This means that the first activity (or set of activities) must be completed before the second activity can start.
Activities which can be executed simultaneously are concurrent activities. You can use an Entity Replicator to replicate the input control entity into N output entities that will flow concurrently into parallel activities. This model uses a masked Entity Replicator block as the AND output block. A synchronization can be described for all activities when concurrent control paths are completed. Use an AND input block to model such synchronization or "join".
Two activities of which only one can ever be executed during a given scenario are mutually exclusive. You can use the Entity Output Switch block to model an OR construct in which mutually exclusive activities can be placed on each output. The control flow entity will be routed to one of the N outputs, thus ensuring that only one of the mutually exclusive activity paths is executed.
This model produces a Gantt chart of the simulation that shows each activity and how long it took to execute. The Gantt chart shows how concurrent activities are executed in parallel, while sequential activities are only executed when the preceding activities are completed.