Method and system for resource management with independent real-time applications on a common set of machines
First Claim
1. In a computer system that runs processes having threads, said computer system having resources for use by the processes and threads, an object-oriented method comprising:
- defining multiple resource provider objects to manage associated resources, at least some of the resource provider objects depending on and being configured to query other resource provider objects to determine what additional resources are needed for an activity;
querying resource provider objects to determine what resources are needed for a cross-process activity, the cross-process activity representing an abstraction of a running program that spans multiple thread and process boundaries to include portions of multiple processes;
determining, responsive to said querying, resource needs of the cross-process activity;
calling a resource planner object with a request to reserve a share of at least one resource to meet the resource needs of the cross-process activity;
receiving at the resource planner object the request;
processing the request with the resource planner object; and
granting the request on a per-activity basis so that the share of the at least one resource is reserved for use by the cross-process activity.
2 Assignments
0 Petitions
Accused Products
Abstract
A resource management mechanism is provided to ensure that real-time application programs running on a single machine or set of machines exhibit predictable behavior. The resource management mechanism employs the abstraction of an activity which serves as the basis for granting resource reservations and for accounting. An activity submits a request for resources in specified amounts to a resource planner. The activity is resource self-aware so that it is aware of its resource requirements. The activity may query resource providers to obtain resource requirements for particular operations. The resource planner determines whether the activity should be granted the requested reservation by employing an internal policy. Policy is separated by mechanism so that the resource planner may implement any of a number of policies. The resource planner may choose to grant the reservation to an activity or deny the request by an activity. When denying a request, the resource planner may inform the activity of what quantity of the requested resources are currently available so that the activity may submit a modified request. The resource management mechanism includes a dynamic feedback mechanism for initiating renegotiation of resource reservations when appropriate.
133 Citations
15 Claims
-
1. In a computer system that runs processes having threads, said computer system having resources for use by the processes and threads, an object-oriented method comprising:
-
defining multiple resource provider objects to manage associated resources, at least some of the resource provider objects depending on and being configured to query other resource provider objects to determine what additional resources are needed for an activity;
querying resource provider objects to determine what resources are needed for a cross-process activity, the cross-process activity representing an abstraction of a running program that spans multiple thread and process boundaries to include portions of multiple processes;
determining, responsive to said querying, resource needs of the cross-process activity;
calling a resource planner object with a request to reserve a share of at least one resource to meet the resource needs of the cross-process activity;
receiving at the resource planner object the request;
processing the request with the resource planner object; and
granting the request on a per-activity basis so that the share of the at least one resource is reserved for use by the cross-process activity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 14, 15)
receiving an additional request for an additional cross-process activity to reserve a share of at least one of the resources; and
processing the additional request with the resource planner object to decide whether to grant the additional request.
-
-
4. The method of claim 1 wherein the cross-process activity requests shares of multiple ones of the resources.
-
5. The method of claim 1 wherein the request includes a resource set that specifies a requested share for each resource for which a reservation is requested.
-
6. The method of claim 1 wherein the resource planner object is a separate entity from the activity.
-
7. The method of claim 1 wherein the cross-process activity represents a real-time program.
-
14. The method of claim 1 further comprising querying, with at least one resource provider object, another resource provider object on which the one resource provider object depends, to determine what additional resources are required.
-
15. The method of claim 14, wherein said queryings are implemented as calls to methods in interfaces supported by the resource provider objects.
-
8. In a computer system having resources for use by cross-process activities and a resource planner for granting reservations for shares of the resources, individual cross-process activities representing an abstraction of a running program that spans multiple thread and process boundaries to include portions of multiple processes, an object-oriented method comprising:
-
defining a plurality of resource provider objects to manage a plurality of respective resources;
running a cross-process activity on the computer system, wherein the cross-process activity is aware of the resource provider objects that it uses;
calling individual resource provider objects that are used by the cross-process activity to query them to determine resources that are needed by the cross-process activity, said calling comprising at least one resource provider object calling another resource provider object on whose resource it depends, to determine what additional resources are needed for the cross-process activity;
calling a resource planner object with a request to obtain a reservation for a share of at least one of the resources, the request containing the resource requirements of the activity; and
processing the request in the resource planner object to grant or deny the request. - View Dependent Claims (9)
-
-
10. In a computer system that runs processes having threads, said computer system having resources for use by the processes and threads, a resource planner for granting reservations of shares of the resources, and a plurality of resource providers that manage resources, an object-oriented method comprising:
-
determining what resources an activity needs by calling one or more methods in interfaces supported by multiple resource provider objects that represent respective resources that are needed by the activity, at least one call being made by one resource provider object to another resource provider object, the activity representing an abstraction that serves as a generalization of a running program and is a unit of abstraction to which resources are allocated and against which resource usage is charged, and further wherein the resources comprise limited software quantities;
calling a resource planner object interface to send a request to obtain a reservation for a share of at least one of the resources which was determined to be needed by the activity;
receiving at the resource planner object the request for the activity to reserve a share of at least one resource, wherein the activity includes at least portions of multiple processes; and
processing the request in the resource planner object to grant or deny the request. - View Dependent Claims (11, 12, 13)
-
Specification