Allocating Resource Entities

After locating the resources in the Resource Pool blocks, the Seize block requests the resources. The Resource Pool blocks process the requests and allocate the resources to the Seize block. In Resource Pool blocks, only the currently functional resources participate in the allocation process.

The Resource Pool block delivers resource entities for allocation. If the pool has its merging/splitting units option disabled, the requested resource entities are delivered without alteration, even when the delivered resources have more units than requested. If the option is enabled, the resource pool delivers the new resource entities after the splitting process. The delivered resource entities contain the exact amount of units requested. The merging and splitting feature of the Resource Pool block is discussed in more detail in the section Merging and Splitting Resource Entities.

To decrease the likelihood of resource deadlock, the Seize block in Simulation Studio does not support partial allocation. All resource constraints must be satisfied before resources are actually allocated to a controlling entity. Otherwise, the Seize block does not accept the request to take the controlling entity, and the controlling entity must wait (perhaps in a queue) for all required resources to become available.

The Batch block can also be used to seize resources. For example, if all resource entities have the same capacity and are of the same type (and deadlock is not a concern), the Batch block can be used to allocate resources to a carrier entity as the resources become available. This approach enables the Batch block to hold a carrier entity with a partially completed allocation when there is a resource shortage and then wait for the additional resource entities to arrive. For this kind of usage, the batch carrier entity used by the Batch block performs the same role as the controlling entity does for a Seize block, and the entities batched with the carrier entity are resource entities. When a Batch block is used, resources do not all need to be available at the same time. The resource entities can be allocated or batched as they become available, one after another. See the description of the Batch block in Appendix A, Templates, for additional information about its usage.

The modeling constraints and requirements of the particular system being simulated determine whether a Seize block or Batch block is appropriate for allocating resource entities. The Batch block offers a more simplistic approach, but it also provides fewer options than the Seize block provides.