System and method for dynamic resource management across tasks in real-time operating systems
First Claim
1. A method of dynamic resource management on a data processing system including a processor, at least one system resource, and a plurality of tasks, the processor being coupled to the system resource and capable of executing the plurality of tasks, the method comprising the steps of:
- executing instructions on the processor to create at least two tasks capable of executing on the processor, each of the at least two tasks having a priority;
creating at least one task resource utilization vector for each of the at least two tasks, the task resource utilization vector comprising the quantity of the at least one system resource that each of the at least two tasks prefers to utilize while executing on the processor; and
dynamically varying the quantity of the at least one system resource that the at least two tasks have allocated based on the availability of the at least one system resource and the priorities of the at least two tasks.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for dynamic resource management across tasks in real-time operating systems is disclosed. The system and method manage an arbitrary set of system resources and globally optimize resource allocation across system tasks in a dynamic fashion, according to a system specified performance model. The present invention provides a mechanism for system programmers to program tasks such that system performance will be globally optimized and dynamically managed over a system programmer-controllable set of system resources. The invention supports a mechanism for defining and managing arbitrary resources through a task resource utilization vector. Each task resource utilization vector contains an arbitrary number of task resource utilization records that contain quantities of system resources that each task qualitatively prefers to utilize while executing on the processor. Each of the task utilization records contains a run level that reflects the associated task'"'"'s ability to perform its work when allocated the resources according to the particular task resource utilization record. This run level is used to dynamically vary the quantity of system resources that the task has allocated, based on the availability of system resources and the priorities of the tasks.
302 Citations
23 Claims
-
1. A method of dynamic resource management on a data processing system including a processor, at least one system resource, and a plurality of tasks, the processor being coupled to the system resource and capable of executing the plurality of tasks, the method comprising the steps of:
-
executing instructions on the processor to create at least two tasks capable of executing on the processor, each of the at least two tasks having a priority; creating at least one task resource utilization vector for each of the at least two tasks, the task resource utilization vector comprising the quantity of the at least one system resource that each of the at least two tasks prefers to utilize while executing on the processor; and dynamically varying the quantity of the at least one system resource that the at least two tasks have allocated based on the availability of the at least one system resource and the priorities of the at least two tasks. - View Dependent Claims (2, 3)
-
-
4. A method of dynamic resource management on a data processing system including a processor, a plurality of system resources, and a plurality of tasks, the processor being coupled to the system resource and capable of supporting the tasks, the method comprising the steps of:
-
executing instructions on the processor to create a plurality of tasks capable of executing on the processor, each of the plurality having a priority; creating a plurality of task resource utilization records for each of the plurality of tasks, each task resource utilization record of the plurality comprising quantities of the pluralities of system resources that each of the plurality of tasks qualitatively prefers to utilize while executing on the processor; for each task resource utilization record of the plurality, assigning a run level to the task utilization record reflecting the associated task'"'"'s ability to perform its work when allocated the resources according to each task resource utilization record; and dynamically varying the quantity of the plurality of system resources that the plurality of tasks have allocated based on the availability of the plurality of system resources and the priorities of the plurality of tasks. - View Dependent Claims (5)
-
-
6. A system for dynamic resource management on a data processing system including a plurality of processors, a plurality of system resources, and a plurality of tasks, the plurality of processors being coupled to the plurality of system resources and capable of supporting the tasks, the system comprising:
-
instructions that when executed on at least one of the plurality of processors create a plurality of tasks capable of execution on at least one of the plurality of processors, each of the plurality of tasks having a priority; means for creating a plurality of task resource utilization records for each of the plurality of tasks, each task resource utilization record of the plurality comprising quantities of the pluralities of system resources that each of the plurality of tasks qualitatively prefers to utilize while executing on the at least one processor; means for assigning a run level to each of the task utilization records of the plurality of tasks, each run level reflecting the associated task'"'"'s ability to perform its work when allocated the resources according to each task resource utilization record; and means for dynamically varying the quantity of the plurality of system resources that the plurality of tasks have allocated based on the availability of the plurality of system resources and the priorities of the plurality of tasks.
-
-
7. A method of dynamic resource management on a data processing system including a processor and a system resource coupled to the processor, the method comprising the steps of:
-
executing instructions on the processor to create a plurality of tasks capable of execution on the processor, each of the tasks having a priority; creating a task resource utilization vector for each of the plurality of tasks, the task resource utilization vector including at least one task utilization resource record specifying a resource quantity request; and dynamically varying the resource quantity requests for each of the plurality of tasks based on the availability of the system resource and the priorities of at least two of the plurality of tasks. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method of dynamic resource management on a data processing system including a plurality of processors and a system resource coupled to the plurality of processors, the method comprising the steps of:
-
executing instructions on at least one of the plurality of processors to create a plurality of tasks capable of execution on any of the plurality of processors, each of the tasks having a priority; creating a task resource utilization vector for each of the plurality of tasks, the task resource utilization vector including at least one task utilization resource record specifying a resource quantity request; and dynamically varying the resource quantity requests for each of the plurality of tasks based on the availability of the system resource and the priorities of at least two of the plurality of tasks. - View Dependent Claims (15, 16)
-
-
17. A computer system comprising:
-
a plurality of resources including a processor and a memory coupled to the processor; and a resource manager program, the program being executed by the processor and including; a routine to create a plurality of tasks capable of execution on the processor, each of the tasks having a priority; a routine to create a task resource utilization vector for each of the plurality of tasks, the task resource utilization vector including at least one task utilization resource record specifying a resource quantity request; and a routine to dynamically varying the resource quantity requests for each of the plurality of tasks based on the availability of the system resource and the priorities of at least two of the plurality of tasks. - View Dependent Claims (18, 19, 20)
-
-
21. A computer program product comprising:
a computer usable medium having computable readable code embodied therein including; a routine to create a plurality of tasks capable of execution on a processor, each of the tasks having a priority; a routine to create a task resource utilization vector for each of the plurality of tasks, the task resource utilization vector including at least one task utilization resource record specifying a resource quantity request for a system resource; and a routine to dynamically varying the resource quantity requests for each of the plurality of tasks based on the availability of the system resource and the priorities of at least two of the plurality of tasks. - View Dependent Claims (22, 23)
Specification