Dispenser determines responses to resource requests for a single respective one of consumable resource using resource management policy
First Claim
Patent Images
1. A system, comprising:
- a processor; and
a memory storing program instructions executable by the processor, wherein the program instructions comprise computations that implement a plurality of dispensers, wherein each dispenser is configured to;
monitor resource requests for a single, respective one of a plurality of consumable execution resources, wherein consumable execution resources are measurable entities that computations can consume; and
determine responses to the resource requests for the single, respective resource, wherein determining a response to a resource request comprises determining whether to grant the resource request or determining an amount of the single, respective resource to grant;
wherein the program instructions comprising computations that implement each of the dispensers are distinct from program instructions comprising computations that implement the single, respective resource for which the dispenser monitors and determines responses to resource requests;
wherein the program instructions comprising computations that implement each of the dispensers are distinct from program instructions comprising computations that consume the single, respective resource for which the dispenser monitors and determines responses to resource requests;
wherein each of the dispensers is further configured to invoke one or more computations that impose one or more resource management policies in determining responses to resource requests for the single, respective resource for which the dispenser monitors and determines responses to resource requests; and
wherein each of the dispensers is further configured to receive one or more policy decisions with regard to the resource requests for the single, respective resource for which the dispenser monitors and determines responses to resource requests from the computations that impose the one or more resource management policies.
2 Assignments
0 Petitions
Accused Products
Abstract
Providing an intermediate isolate, referred to as a dispenser, to handle resource requests allows for monitoring and controlling of resource consumption separate from an operating system. Resources are characterized with a set of common attributes, separate from their specific implementation. The dispenser invokes computations that provide policy decisions corresponding to a resource request. The dispenser provides the requesting isolate a response based at least in part on the policy decisions. Separating management of resources from the operating system facilitates implementation of a dispenser in a safe language and management of a broad range of resources by the dispenser.
38 Citations
76 Claims
-
1. A system, comprising:
-
a processor; and a memory storing program instructions executable by the processor, wherein the program instructions comprise computations that implement a plurality of dispensers, wherein each dispenser is configured to; monitor resource requests for a single, respective one of a plurality of consumable execution resources, wherein consumable execution resources are measurable entities that computations can consume; and determine responses to the resource requests for the single, respective resource, wherein determining a response to a resource request comprises determining whether to grant the resource request or determining an amount of the single, respective resource to grant; wherein the program instructions comprising computations that implement each of the dispensers are distinct from program instructions comprising computations that implement the single, respective resource for which the dispenser monitors and determines responses to resource requests; wherein the program instructions comprising computations that implement each of the dispensers are distinct from program instructions comprising computations that consume the single, respective resource for which the dispenser monitors and determines responses to resource requests; wherein each of the dispensers is further configured to invoke one or more computations that impose one or more resource management policies in determining responses to resource requests for the single, respective resource for which the dispenser monitors and determines responses to resource requests; and wherein each of the dispensers is further configured to receive one or more policy decisions with regard to the resource requests for the single, respective resource for which the dispenser monitors and determines responses to resource requests from the computations that impose the one or more resource management policies. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method, comprising:
-
processing, by a dispenser, a plurality of requests to consume a given resource or to release a given resource that was being consumed based at least in part on a value of one or more common resource attributes as applied to the given resource, wherein said processing comprises monitoring the plurality of requests, wherein the given resource is a measurable entity that a computation can consume, wherein the common resource attributes are usable to characterize resources with respect to consuming or releasing the resources, wherein the common resource attributes are applicable to resources of the type of the given resource and to resources of types other than the type of the given resource, wherein values of the one or more common resource attributes as applied to the given resource are not unique values specific to the implementation of the given resource, and wherein the one or more common resource attributes comprise one or more of;
disposable, revocable, reservable, or bounded;determining, by the dispenser, responses for the plurality of requests, wherein determining a response to a request to consume the given resource comprises determining whether to grant the request to consume the given resource or determining an amount of the given resource to grant, and wherein said determining is based at least in part on the values of the one or more common resource attributes as applied to the given resource; and providing the responses to a set of one or more resource consuming computations from which the requests were received; wherein the dispenser is one of a plurality of dispensers, each of which processes and determines responses to resource requests for a single, respective one of a plurality of consumable resources; wherein implementation of the dispenser is distinct from implementation of the one or more resource consuming computations; and wherein implementation of the dispenser is distinct from implementation of the given resource. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A method, comprising:
-
monitoring, by a dispenser, one or more requests to consume a given resource or to release a given resource that was being consumed from one or more resource consuming isolates, wherein the given resource is a measurable entity that a resource consuming isolate can consume; and governing, by the dispenser, a request to consume the given resource or to release the given resource, wherein the resource request is governed based at least in part on a value of one or more common resource attributes as applied to the given resource, wherein the common resource attributes are usable to characterize resources with respect to consuming or releasing the resources, wherein the common resource attributes are applicable to resources of the type of the given resource and to resources of types other than the type of the given resource, wherein values of the one or more common resource attributes as applied to the given resource are not unique values specific to the implementation of the given resource, and wherein governing a request to consume a given resource comprises determining whether to grant the request to consume the given resource or determining an amount of the given resource to grant; and providing a response to the request to consume or release the given resource to the resource consuming isolate; wherein said governing comprises; invoking one or more computations that impose one or more resource management policies in determining responses to requests to consume the given resource or to release the given resource; and receiving one or more policy decisions with regard to the request to consume the given resource or to release the given resource from the computations that impose the one or more resource management policies; wherein the dispenser is one of a plurality of dispensers, each of which monitors and governs requests to consume or release a single, respective one of a plurality of consumable resources; wherein implementation of the dispenser is distinct from implementation of the resource consuming isolate; and wherein implementation of the dispenser is distinct from implementation of the given resource. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A computer program product, encoded on one or more non-transitory machine-readable storage media, the computer program product comprising program instructions executable by one or more computers to implement:
-
a dispenser class that defines an interface to expose a single, respective one of a plurality of consumable execution resources to computations that consume resources and to monitor and determine responses to requests for the single, respective resource, wherein consumable execution resources are measurable entities that computations can consume, wherein the dispenser class is instantiable to create a plurality of instances of the dispenser class, each of which is configured to monitor and determine responses to requests for a single, respective one of the plurality of consumable execution resources, and wherein determining a response to a resource request comprises determining whether to grant the resource request or determining an amount of the single, respective resource to grant; and a resource request action class that defines an action to invoke an instance of the dispenser class; wherein each of the plurality of resources is implemented by one or more computations that include one or more of;
an operating environment, libraries, programming language runtime systems, middleware, or applications classes;wherein the program instructions that are executable to implement the dispenser class are distinct from program instructions comprising the one or more computations that implement each of the plurality of resources; and wherein the program instructions that are executable to implement the dispenser class are distinct from program instructions comprising the computations that consume the plurality of resources. - View Dependent Claims (51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. A computer program product, encoded on one or more non-transitory machine-readable storage media, the computer program product comprising program instructions executable by one or more computers to implement:
-
a common resource attribute class that defines common resource attributes for characterizing resources with respect to consuming or releasing the resources, wherein the common resource attributes are applicable to resources of different types, wherein values of the one or more common resource attributes as applied to any given resource are not unique values specific to the implementation of the given resource, and wherein the one or more common resource attributes comprise one or more of;
disposable, revocable, reservable, or bounded; anda dispenser class that defines a posting facility to monitor and process posted resource requests for a single, respective resource of a plurality of consumable execution resources based at least in part on abstractions of resources utilizing the common resource attribute class, wherein consumable execution resources are measurable entities that computations can consume, wherein the dispenser class is instantiable to create a plurality of instances of the dispenser class, each of which is configured to monitor and process requests for a single, respective one of the plurality of consumable execution resources, and wherein processing a posted resource request comprises determining whether to grant the posted resource request or determining an amount of the single, respective resource to grant; wherein the program instructions that are executable to implement the dispenser class are distinct from program instructions comprising computations that implement each of the plurality of resources; and wherein the program instructions that are executable to implement the dispenser class are distinct from program instructions comprising computations that consume the plurality of resources. - View Dependent Claims (66, 67, 68, 69, 70, 71)
-
-
72. A computer program product, encoded on one or more non-transitory machine-readable storage media, the computer program product comprising program instructions executable by one or more computers to implement:
-
characterizing a given resource with respect to consuming or releasing the given resource using one or more common resource attributes to separate the given resource from its implementation, wherein the given resource is a measurable entity that a resource consuming computation can consume, wherein the common resource attributes are applicable to characterize resources of different types, and wherein values of the one or more common resource attributes as applied to the given resource are not unique values specific to the implementation of the given resource; managing requests for the given resource, wherein the program instructions executable by the one or more computers to implement managing requests for the given resource are distinct from program instructions comprising computations that implement the given resource, wherein the program instructions executable by the one or more computers to implement managing requests for the given resource are distinct from program instructions comprising resource consuming computations, wherein managing requests for the given resource comprises monitoring requests for the given resource and determining responses to the requests for the given resource, and wherein determining a response to a request for the given resource comprises determining whether to grant the request or determining an amount of the given resource to grant; and hiding the computations that implement the given resource from the resource consuming computations; wherein the program instructions executable by the one or more computers to implement managing requests for the given resource are configured to manage resource requests for a single, respective one of a plurality of consumable resources and are separate from program instructions executable by the one or more computers to implement managing requests for other ones of the plurality of consumable resources; wherein said determining responses to resource requests for the given resource comprises; invoking one or more computations that impose one or more resource management policies in determining responses to resource requests for the given resource; and receiving one or more policy decisions with regard to the resource requests for the given resource from the computations that impose the one or more resource management policies. - View Dependent Claims (73, 74)
-
-
75. An apparatus, comprising:
-
system memory; means for separating implementation of a given resource from implementation of mechanisms for monitoring and determining responses to requests to consume or release the given resource that are posted by first computations, wherein the first computations are encapsulated to prevent sharing of computational state with other computations; means for separating implementation of the mechanisms for monitoring and determining responses from implementation of the first computations; and means for characterizing the given resource with respect to consuming or releasing the given resource using one or more common resource attributes, wherein the given resource is a measurable entity that a resource consuming computation can consume, wherein the common resource attributes are applicable to characterize resources of different types, wherein values of the one or more common resource attributes as applied to the given resource are not unique values specific to the implementation of the given resource, wherein the one or more common resource attributes comprise one or more of;
disposable, revocable, reservable, or bounded, wherein the monitoring and determining responses to consume or release requests for the given resource is based at least in part on the values of the one or more common resource attributes as applied to the given resource, and wherein determining a response to a consume request comprises determining whether to grant the consume request or determining an amount of the given resource to grant;wherein the mechanisms for monitoring and determining responses are configured to monitor and determine responses to resource requests for a single, respective one of a plurality of consumable resources and are separate from mechanisms for monitoring and determining responses to requests to consume or release other ones of the plurality of consumable resources. - View Dependent Claims (76)
-
Specification