A method for flexible allocation of a resource in which a soft limit and a hard
limit are assigned to each of a set of potential users of the resource. The soft
limits are selected to guarantee access to the resource by all of the potential
users. The hard limits are selected to enable each potential user to exceed the
corresponding soft limit on a first-come-first-served basis. A request from a user
for allocation of a portion of the resource is handled by granting the request
if the request if allowed would not exceed soft limit assigned to the user. The
request is denied if the request if allowed would exceed the hard limit assigned
to the user. To avoid overtaxing the capacity of the resource, the request is denied
even when the hard limit of the user is not exceeded if the request if allowed
would cause a total allocation of the resource to exceed a high watermark assigned
to the resource.