Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
First Claim
1. A computer system comprising:
- resources;
at least one real-time program that requires the use of at least one of the resources;
at least one non-real-time program that requires the use of at least one of the resources;
a resource planner module that issues reservations to the at least one real-time program to use shares of at least some of the resources in response to requests submitted by the at least one real-time program; and
a scheduler module for scheduling the use of resources by the at least one non-real-time program and the at least one real-time program according to the reservations issued by the resource planner module.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for scheduling the use of a computer system resource using a resource planner and a resource provider are provided. In a preferred embodiment, a resource is scheduled for use by a plurality of consumer entities. Each consumer entity may request the commitment of a share of the resource. The method and system use representations of resource usage policy, present commitments of shares of the resource, and present commitments of specified amounts of the resource over a specified period of time. The method and system first receive a request from a consumer entity for the commitment of a specified share of the resource. In response, the method and system determine whether the specified share of the resource should be committed to the requesting consumer entity. This determination is based on the representations of resource usage policy and present commitments of shares of the resource. If it is determined that the specified share of the resource should be committed to the requesting consumer entity, then the method and system modify the representation of present commitments of shares of the resource to commit the specified share of the resource to the requesting consumer entity. The method and system then schedule the use of the resource by the plurality of consumer entities based on the modified representation of present commitments of shares of the resource.
118 Citations
15 Claims
-
1. A computer system comprising:
-
resources;
at least one real-time program that requires the use of at least one of the resources;
at least one non-real-time program that requires the use of at least one of the resources;
a resource planner module that issues reservations to the at least one real-time program to use shares of at least some of the resources in response to requests submitted by the at least one real-time program; and
a scheduler module for scheduling the use of resources by the at least one non-real-time program and the at least one real-time program according to the reservations issued by the resource planner module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
a policy module for implementing a policy for arbitrating among requests to reserve resources; and
an independent planning engine that is separate from the policy module but that implements the policy of the policy module in issuing reservations to the at least one real-time program to use shares of at least some of the resources.
-
-
3. The computer system of claim 1, further including a non-real-time resource reservation subsystem that issues reservations to the at least one non-real-time program to use predetermined shares of at least some of the resources without receiving requests from the at least one non-real-time program, and wherein the scheduler module further schedules the use of resources by the at least one non-real-time program and the at least one real-time program according to the reservations issued by the non-real-time resource reservation subsystem.
-
4. The computer system of claim 3 wherein the non-real-time resource reservation subsystem is part of the scheduler module.
-
5. The computer system of claim 1 wherein each resource has a maximum capacity, and wherein at least one of the resources has unreserved capacity corresponding to the difference between the maximum capacity of the resource and the sum of the shares of the resource reserved by the resource planner module, and wherein the scheduler module further schedules any unreserved capacity of each resource without regard for the reservations issued by the resource planner module.
-
6. The computer system of claim 1 wherein portions of the resources whose use is scheduled by the scheduler module may be either used or unused by the at least one non-real-time program or by the at least one real-time program for whose use the resources are scheduled by the scheduler module, and wherein the scheduler module further reschedules the use of any unused portions of the resources without regard for the reservations issued by the resource planner module.
-
7. The computer system of claim 2 wherein the resource planner module further comprises a different policy module for implementing a different policy for arbitrating among requests to reserve resources and wherein the independent planning engine implements the different policy of the different policy module.
-
8. The computer system of claim 2 wherein the resource planner module is an object and the policy module is an interface supported by the resource planner module.
-
9. A computer system for running real-time applications programs, the computer system comprising:
-
one or more resources;
an application programming interface usable by real-time applications programs to request use of resources subject to time constraints;
a resource planner for allocating resources in response to requests to use resources received by the application programming interface from real-time applications programs; and
a scheduler for scheduling the use of resources requested by the real-time applications programs and allocated by the resource planner.
-
-
10. A method for developing a real-time application program for performing a processing objective in a real-time manner, the method comprising the steps of:
-
preparing a substantive portion of the real-time application program for performing the processing objective, the substantive portion specifying the use of a computer system resource; and
adding to the substantive portion of the real-time application program calls to a real-time application programming interface for reserving and scheduling the use of at least a portion of the computer system resource, such that the added calls enable the real-time application program to perform its processing objective in a real-time manner. - View Dependent Claims (11, 12)
-
-
13. A computer-readable medium containing data causing a computer system to perform a processing objective in a real-time manner by performing the steps of:
-
executing steps for performing the processing objective, the executed steps specifying the use of a resource of the computer system; and
calling a real-time application programming interface to reserve and schedule the use of at least a portion of the resource, such that the processing objective is performed in a real-time manner.
-
-
14. A computer memory containing a resource management data structure for use in managing the use of resources by real-time programs and non-real-time programs, the data structure comprising:
-
information defining a resource planning state useable for issuing reservations to the real-time programs to use shares of at least some of the resources in response to requests submitted by the real-time programs; and
information defining a scheduling state useable for scheduling the use of resources by the non-real-time programs and the real-time programs in accordance with issued reservations. - View Dependent Claims (15)
policy information useful to arbitrate among conflicting requests to reserve resources.
-
Specification