Method and system for resource management with independent real-time applications on a common set of machines
First Claim
1. In a computer system having local resources that a program may use, a method comprising the computer-implemented steps of:
- providing a resource planner for planning resource allocation in the computer system, comprising;
a policy module for implementing a policy for arbitrating among requests to reserve resources;
an independent planning engine that is separate from the policy module but that implements the policy of the policy module;
receiving at the resource planner a request for a program to reserve a resource; and
using the resource planner to determine whether to grant the request.
1 Assignment
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.
-
Citations
44 Claims
-
1. In a computer system having local resources that a program may use, a method comprising the computer-implemented steps of:
-
providing a resource planner for planning resource allocation in the computer system, comprising;
a policy module for implementing a policy for arbitrating among requests to reserve resources;
an independent planning engine that is separate from the policy module but that implements the policy of the policy module;
receiving at the resource planner a request for a program to reserve a resource; and
using the resource planner to determine whether to grant the request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a computer system having local resources a method comprising the computer-implemented steps of:
-
concurrently running multiple real-time application programs that require at least some of the local resources on the computer system;
providing a resource planner that the programs must contact to reserve the local resources, said resource planner implementing a universal policy for arbitrating among requests for the local resources;
receiving at the resource planner requests for at least some of the local resources from the real-time application programs running on the computer system; and
in the resource planner, arbitrating among the requests to grant or deny reservations for at least some of the local resources to the real-time application programs that submitted the requests. - View Dependent Claims (8, 9)
-
-
10. In a computer system having resources, a method comprising the computer-implemented steps of:
-
providing a computer-implemented resource planner for granting reservations of shares of the local resources in response to requests;
receiving at the resource planner a request from a first program to reserve a first share of a selected one of the resources;
receiving at the resource planner a request from a second program to reserve a second share of the selected resource, wherein said second program is not aware of said first program; and
with the resource planner, granting the first program a reservation for the first share of the selected resource and granting the second program a reservation for the second share of the selected resource so that the first program and second program may share the selected resource.
-
-
11. In a computer system that runs processes having threads, said computer system having resources for use by the processes and threads, a method comprising the computer-implemented steps of:
-
providing a resource planner for granting reservations of shares of the resources;
receiving at the resource planner a request for an activity to reserve a share of at least one resource wherein said activity includes at least portions of multiple processes;
processing the request with the resource planner; and
granting the request so that the share of the at least one resource is reserved for use by the activity. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. In a computer system having resources for use by activities, a method comprising the computer-implemented steps of:
-
providing a resource planner for granting reservations for shares of the resources;
running an activity on the computer system wherein the activity is aware of its resource requirements;
submitting a request to the resource planner to obtain a reservation for a share of at least one of the resources that reflect the resource requirements of the activity;
processing the request in the resource planner to grant or deny the request. - View Dependent Claims (19, 20, 21, 22, 24)
-
-
23. In a computer system having resources and a resource planner for granting reservations of amounts of resources to activities, a method comprising the computer-implemented steps of:
-
from an activity, submitting a request for a reservation of a set of resources in specified amounts to the resource planner;
with the resource planner, processing the request and determining that the request may not be granted; and
returning to the activity from the resource planner a list of amounts of the set of resources that are currently available to the activity.
-
-
25. In a computer system having resources and a resource planner for granting reservations of amounts of resources to activities performed on the computer system, a method comprising the computer-implemented steps of:
-
negotiating between the resource planner and activities to reserve shares of the resources with the resource planner on behalf of the activities; and
in view of changing resource usage or requirements, renegotiating between the resource planner and the activities to change reservations of resources on behalf of the activities to reflect the changing resource usage or requirements. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. In a computer system having an initial set of resources a resource planner and activities that seek to use the resources, a method comprising the computer- implemented steps of:
-
managing allocation of use of the initial set of resources by the activities with the resource planner;
altering what resources are in the computer system so that a new set of resources are in the computer system; and
adapting to the altering of what resources are in the computer system with the resource planner to manage allocation of use of the new set of resource by activities with the resource planner, without interruption of operation of the resource planner. - View Dependent Claims (32, 33)
-
-
34. In a computer system, performing an activity and having resources that may be used by the activities and resource providers that manage access to the resources, a method comprising the computer-implemented steps of:
-
with an activity, querying a first resource provider that is called by the activity to perform an operation on behalf of the activity to determine a first set of resource requirements to perform the operation on behalf of the activity;
with the first resource provider, querying a second resource that is called by the first resource provider to complete the operation on behalf of the activity provider to determine a second set of resource requirements for the second resource provider to perform its role in the operation that is performed on behalf of the activity;
determining the first set of resource requirements to be a sum of the second set of resource requirements and any additional resource requirements for actions performed directly by the first resource provider to complete the operation on behalf of the activity; and
determining resource requirements of the activity to be a sum of the first set of resource requirements and any additional resource requirements of the activity. - View Dependent Claims (35)
-
-
36. In a distributed system having computer systems connected by network connectors, wherein each computer system performs activities and has local resources and a local resource planner that allocates reservations of shares of the local resources to activities, a method comprising the steps of:
-
at one of the computer systems, receiving a request for a reservation of a share of a remote resource at a selected one of the computer systems from an activity at the local resource planner;
forwarding the request to the local resource planner at the selected one of the computer systems;
processing the request at the local planner of the selected one of the computer systems to generate a response to the request; and
returning the response to the activity that initiated the request.
-
-
37. A computer system comprising:
-
resources;
programs that require the use of at least some of the resources; and
a resource planner that is independent of the programs and the resources for issuing reservations to the programs to use shares of at least some of the resources in response to requests submitted by the programs. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
Specification