Quantity-Shared

Modeling variable quantity consumption

Quick Explanation

  • Models the consumption of quantity
  • Can be used to define parking spots, memory locations, semaphores, and anywhere quantity consumption needs to be analyzed
  • Can be indexed and non-indexed
  • Can wait for full request, consume available or leave if not available
  • Supports blocking and non-blocking model
  • Supports multiple concurrent resource pool
  • Has a queue per resource pool
  • Supports queuing based on priority

Quantity Shared

The Quantity-Shared Resource Blocks represent discrete elements that are stored in a resource pool when not in use and are released when requested.  A Quantity-Shared resource releases the allocated resource when the transaction no longer requires the resource or the transaction has completed its process.

Resource units can represent items such as memory banks, pages in cache, virtual circuits in a communication channel, or available disk space.  The resource units can be indistinguishable, as in a pool, or distinguishable by providing a specific address for the request of units.  Requests for addressed resource units can be allocated using a first-fit or best-fit policy, settable as a block parameter.  For example, if one requested three cache lines using a first-fit policy, then the first address with three, or more cache lines would be allocated to this request and held until a release request has been sent.

Instead of using time as the resource allocation, as in the FCFS blocks, the Quantity Shared (QS) blocks allocate resources based on requests for units from any requester.  Once the requested units are allocated, the model can process the units granted, and when complete, frees the resources back to the central resource.

Using quantity shared resource to define consumption of quantity