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.