Resource manager architecture with dynamic resource allocation among multiple configurations
First Claim
1. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
- multiple resource providers associated with resources;
multiple consumers that utilize the resources provided by the resource providers to perform associated tasks, at least one of the consumers specifying a first configuration that identifies a first set of one or more resources to perform a task and a second configuration that identifies a second set of one or more resources to perform the task; and
a resource manager to arbitrate access to the resources provided by the resource providers on behalf of the consumers, the resource manager changing said one consumer from the first configuration to the second configuration to permit reallocation of at least portions of the resources among the consumers;
wherein the resource providers prevent the consumers from using the resources until the resources are reserved through the resource manager.
2 Assignments
0 Petitions
Accused Products
Abstract
Resource management architectures implemented in computer systems to manage resources are described. In one embodiment, a general architecture includes a resource manager and multiple resource providers that support one or more resource consumers such as a system component or application. Each provider is associated with a resource and acts as the manager for the resource when interfacing with the resource manager. The resource manager arbitrates access to the resources provided by the resource providers on behalf of the consumers. A policy manager sets various policies that are used by the resource manager to allocate resources. One policy is a priority-based policy that distinguishes among which applications and/or users have priority over others to use the resources. A resource consumer creates an “activity” at the resource manager and builds one or more “configurations” that describe various sets of preferred resources required to perform the activity. Each resource consumer can specify one or more configurations for each activity. If multiple configurations are specified, the resource consumer can rank them according to preference. This allows the resource consumers to be dynamically changed from one configuration to another as operating conditions change.
130 Citations
37 Claims
-
1. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
multiple resource providers associated with resources; multiple consumers that utilize the resources provided by the resource providers to perform associated tasks, at least one of the consumers specifying a first configuration that identifies a first set of one or more resources to perform a task and a second configuration that identifies a second set of one or more resources to perform the task; and a resource manager to arbitrate access to the resources provided by the resource providers on behalf of the consumers, the resource manager changing said one consumer from the first configuration to the second configuration to permit reallocation of at least portions of the resources among the consumers; wherein the resource providers prevent the consumers from using the resources until the resources are reserved through the resource manager. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
multiple resource providers associated with resources; multiple consumers that utilize the resources provided by the resource providers to perform associated tasks; a resource manager to arbitrate access to the resources provided by the resource providers on behalf of the consumers using one or more communications with the resource providers; one of the consumers creating an activity at the resource manager in association with a task to be performed and building multiple configurations for the activity, each configuration identifying a set of one or more of the resources to perform the task; and the resource manager being configured to reserve resources that satisfy at least one of the configurations and to subsequently switch the activity from said one configuration to another of the configurations to reallocate particular resources to or away from the activity. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
multiple resource providers that are associated with resources; a resource manager to allocate the resources provided by the resource providers to one or more consumers; at least one activity data structure created at the resource manager in association with a task to be performed by a corresponding consumer; multiple configuration data structures created at the resource manager in association with the activity data structure, each configuration data structure describing a set of one or more resources used to perform the associated activity; and the resource manager being configured to switch among the configuration data structures of the associated activity data structure to change which of the resources are allocated to the consumer corresponding to the activity data structure and configured to interact with at least a portion of the multiple resource providers; wherein at least one resource provider acts as a consumer of a resource provided by at least one other resource provider.
-
-
23. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
multiple resource providers that are associated with resources; a resource manager to allocate the resources provided by the resource providers to one or more consumers; at least one activity data structure created at the resource manager in association with a task to be performed by a corresponding consumer; multiple configuration data structures created at the resource manager in association with the activity data structure, each configuration data structure describing a set of one or more resources used to perform the associated activity; and the resource manager being configured to switch among the configuration data structures of the associated activity data structure to change which of the resources are allocated to the consumer corresponding to the activity data structure and configured to interact with at least a portion of the multiple resource providers; wherein after switching from a first configuration data structure to a second configuration data structure, the resource manager automatically reserves the set of resources specified in the second configuration data structure; and wherein the resource manager notifies the consumer corresponding to the activity data structure when the resources specified in the first configuration data structure are once again available. - View Dependent Claims (24)
-
-
25. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
a resource manager to allocate resources among multiple consumers; an existing activity associated with a task to be performed by a corresponding consumer, the existing activity having first and second configurations that specify first and second sets of one or more resources used to perform the task, at least one resource of the one or more resources including an attribute that is opaque to the resource manager; the resource manager being configured to reserve the first set of systems resources specified in the first configuration of the existing activity; a new activity associated with another task to be performed by a corresponding consumer, the new activity having at least one configuration that specifies a particular resource reserved in the first configuration of the existing activity; and the resource manager being configured to change the existing activity from the first configuration to the second configuration so that at least part of the particular resource can be released from the existing activity for reservation to the new activity; wherein the resource manager notifies the existing activity when the resources specified in the first configuration are once again available for reservation.
-
-
26. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
a resource manager to allocate resources among multiple consumers; an existing activity associated with a task to be performed by a corresponding consumer, the existing activity having first and second configurations that specify first and second sets of one or more resources used to perform the task, at least one resource of the one or more resources including an attribute that is opaque to the resource manager; the resource manager being configured to reserve the first set of systems resources specified in the first configuration of the existing activity; a new activity associated with another task to be performed by a corresponding consumer, the new activity having at least one configuration that specifies a particular resource reserved in the first configuration of the existing activity; and the resource manager being configured to change the existing activity from the first configuration to the second configuration so that at least part of the particular resource can be released from the existing activity for reservation to the new activity; wherein the resource manager automatically changes the existing activity from the second configuration back to the first configuration when the resources specified in the first configuration are once again available for reservation.
-
-
27. A resource management architecture implemented with at least a computing unit, the resource management architecture comprising:
-
a resource manager to allocate resources among multiple consumers according to priorities in conjunction with multiple resource providers that are associated with the resources, the resource manager adapted to expose application programming interfaces for interacting with the multiple consumers and the multiple resource providers; a low priority activity associated with a task to be performed by a corresponding consumer, the low priority activity having multiple configurations that specify sets of one or more resources used to perform the task, the configurations being ranked in order of preference; the resource manager being configured to reserve the set of resources specified in a high ranked configuration of the low priority activity; a high priority activity associated with another task to be performed by a corresponding consumer, the high priority activity having at least one configuration that specifies a particular resource reserved in the high ranked configuration of the low priority activity; and the resource manager being configured to downgrade the low priority activity from the high ranked configuration to a lower ranked configuration so that at least part of the particular resource can be reallocated from the low priority activity to the high priority activity. - View Dependent Claims (28, 29, 30)
-
-
31. A method comprising:
-
receiving a request from a first consumer to reserve resources to perform a task; establishing, for the first consumer, multiple alternate configurations of the resources that may be utilized to perform the task using, at least partially, resource providers that are associated with the resources; reserving the resources specified in one of the configurations for allocation to the first consumer; receiving a request from a second consumer to reserve a set of one or more resources including at least one common resource that is already reserved for the first consumer; shifting the first consumer from said one configuration to another configuration to free at least part of the common resource for reservation for allocation to the second consumer; and switching from said another configuration back to said one configuration when more of the common resource becomes available.
-
-
32. A method comprising:
-
creating a new activity in association with a task to be performed; building multiple configurations for the new activity each configuration identifying a different set of one or more resources used to perform the task, the configurations being ranked in order of preference; evaluating a current allocation of the resources among existing activities by calling an accumulator function of each respective resource provider of multiple resource providers that are respectively associated with the resources; and reserving the set of one or more resources specified in a highest ranking configuration; wherein an existing activity or another new activity requests a resource identified in the highest ranking configuration, and further comprising downgrading from the highest ranking configuration to a lower ranking configuration to free at least part of the requested resource for allocation to the existing activity or the other new activity; and wherein said existing or other new activity subsequently releases at least part of the requested resource, and further comprising notifying the new activity that a higher ranking configuration is available.
-
-
33. A method comprising:
-
creating a new activity in association with a task to be performed; building multiple configurations for the new activity, each configuration identifying a different set of one or more resources used to perform the task, the configurations being ranked in order of preference; evaluating a current allocation of the resources among existing activities by calling an accumulator function of each respective resource provider of multiple resource providers that are respectively associated with the resources; and reserving the set of one or more resources specified in a highest ranking configuration; wherein an existing activity or another new activity requests a resource identified in the highest ranking configuration, and further comprising downgrading from the highest ranking configuration to a lower ranking configuration to free at least part of the requested resource for allocation to the existing activity or the other new activity; and wherein said existing or other new activity subsequently releases the requested resource, and further comprising upgrading from the lower ranking configuration to the highest ranking configuration to once again reserve more of the requested resource.
-
-
34. A computer-readable medium having computer-executable instructions that, when executed, direct a computing device to:
-
reserve, for a first consumer, resources specified in one of multiple configurations for allocation to the first consumer; receive a request from a second consumer to reserve a set of one or more resources including at least one common resource that is already reserved for the first consumer; trace dependent resources from the common resource to another resource that is associated with a resource provider known to the first consumer; notify, by the resource provider, the first consumer that the common resource is being preempted; and shift the first consumer from said one configuration to another configuration to free the common resource for reservation for allocation to the second consumer. - View Dependent Claims (35)
-
-
36. A computer-readable medium having computer-executable instructions that, when executed, direct a computing device to:
-
create a new activity in association with a task to be performed; build multiple configurations for the new activity, each configuration identifying a different set of one or more resources in a manner that indicates inter-resource relationships used to perform the task, the configurations being ranked in order of preference; reserve the set of one or more resources specified in a highest ranking configuration; and in an event that one of the resources specified in the highest ranking configuration is required by another activity, shift to a lower ranking configuration that does not specify the required resource to thereby release the required resource for allocation to said another activity. - View Dependent Claims (37)
-
Specification