Credit based performance managment of computer systems
First Claim
Patent Images
1. A method of managing the performance of a processor system comprising:
- creating a list of processor tasks to be executed by one or more processors of the processor system with each task having an associated task profile that specifies task parameters including a calculated start time, wherein each task comprises a set of instructions to be executed by at least one processor of the processor system and wherein the calculated start time characterizes a time at which the corresponding task should be next scheduled to be executed by at least one of the processors;
tracking credit for each of the tasks in the lists of tasks, wherein credit is accumulated at a rate equal to a corresponding product of work rate and elapsed time and credit for the task is reduced when the task is selected for execution by the corresponding work completed;
comparing a current real time with the calculated start times associated with each of the tasks in the list of tasks;
selecting at least one first task to be scheduled for execution from the list of tasks when a value of a difference between the current real time and the calculated start time for the at least one first task meets a first threshold criteria and in accordance with the task parameters including a parameter indicating the at least one first task is not dependent on one of an occurrence and non-occurrence of an event;
monitoring the execution of the at least one first task to determine a monitored value related to an amount of work completed for the at least one first task;
comparing the monitored value related to the amount of work completed to a value based on the tracked credit that is related to an amount of work to be completed by the at least one first task; and
throttling the at least one first task from completing additional work when a difference between the monitored value related to the amount of work completed and the value related to the amount of work to be completed meets a second threshold criteria until a pre-defined amount of credit for performing work is accumulated.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method to control the allocation of processor (or state machine) execution resources to individual tasks executing in computer systems is described. By controlling the allocation of execution resources, to all tasks, each task may be provided with throughput and response time guarantees. This control is accomplished through workload metering shaping which delays the execution of tasks that have used their workload allocation until sufficient time has passed to accumulate credit for execution (accumulate credit over time to perform their allocated work) and workload prioritization which gives preference to tasks based on configured priorities.
-
Citations
56 Claims
-
1. A method of managing the performance of a processor system comprising:
-
creating a list of processor tasks to be executed by one or more processors of the processor system with each task having an associated task profile that specifies task parameters including a calculated start time, wherein each task comprises a set of instructions to be executed by at least one processor of the processor system and wherein the calculated start time characterizes a time at which the corresponding task should be next scheduled to be executed by at least one of the processors; tracking credit for each of the tasks in the lists of tasks, wherein credit is accumulated at a rate equal to a corresponding product of work rate and elapsed time and credit for the task is reduced when the task is selected for execution by the corresponding work completed; comparing a current real time with the calculated start times associated with each of the tasks in the list of tasks; selecting at least one first task to be scheduled for execution from the list of tasks when a value of a difference between the current real time and the calculated start time for the at least one first task meets a first threshold criteria and in accordance with the task parameters including a parameter indicating the at least one first task is not dependent on one of an occurrence and non-occurrence of an event; monitoring the execution of the at least one first task to determine a monitored value related to an amount of work completed for the at least one first task; comparing the monitored value related to the amount of work completed to a value based on the tracked credit that is related to an amount of work to be completed by the at least one first task; and throttling the at least one first task from completing additional work when a difference between the monitored value related to the amount of work completed and the value related to the amount of work to be completed meets a second threshold criteria until a pre-defined amount of credit for performing work is accumulated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A processor system of managing the performance of a computer system comprising:
-
one or more processors memory storing instructions for execution by the one or more data processors, the instructions implementing; a shaper module configured to track credit for each tasks of a plurality of tasks, wherein credit is accumulated at a rate equal to a corresponding product of work rate and elapsed time and credit for the task is reduced when the task is selected for execution by the corresponding work completed, wherein the shaper module is further configured to compare a current real time and a computed start time associated with each task to determine whether to select a task to be scheduled for execution, wherein tasks are scheduled for execution when a value of a difference between a current real time and a calculated start time meets a first threshold criteria and in accordance with task parameters including a parameter indicating the corresponding task is not dependent on one of an occurrence and non-occurrence of an event, wherein each task comprises a set of instructions to be executed by at least one of the one or more processors of the processor system and wherein the calculated start time characterizes a time at which the corresponding task should be next scheduled to be executed by at least one of the one or more processors; a scheduler module configured to prioritize an execution schedule of the plurality of tasks based on the task parameters including a configured priority after the tasks have been selected to be scheduled by the shaper module; and a metering module configured to monitor the execution of tasks being executed by the computer system to determine a monitored value related to an amount of work completed by the task and to compare the monitored value related to an amount of work completed to a value based on the tracked credit that is related to the amount of work to be completed by the task so that a responsive action can be taken, wherein the responsive action comprises selectively allocating or de-allocating processing resources provided by the one or more processors for the corresponding task, wherein the selectively allocated or de-allocating processing resources comprises;
throttling a task from completing additional work when a difference between the corresponding monitored value related to the amount of work completed and the corresponding value related to the amount of work to be completed meets a second threshold criteria until a pre-defined amount of credit for performing work is accumulated. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
-
30. An apparatus for managing the performance of a processor system comprising:
-
one or more processors; memory storing instructions, which when executed by the one or more processors result in operations comprising; creating a list of processor tasks to be executed by one of the one or more processors of the processor system with each task having an associated task profile that specifies task parameters including a calculated start time, wherein each task comprises a set of instructions to be executed by at least one of the one or more processors of the processor system and wherein the calculated start time characterizes a time at which the corresponding task should be next scheduled to be executed by at least one of the processors; tracking credit for each of the tasks in the list of tasks, wherein credit is accumulated at a rate equal to a corresponding product of work rate and elapsed time, and credit for the task is reduced when the task is selected for execution by the corresponding work completed; comparing a current real time with the calculated start times associated with each of the tasks in the list of tasks; selecting at least one first task to be scheduled for execution from the list of tasks when a value of a difference between the current real time and the calculated start of a task time for the at least one first task meets a first threshold criteria and in accordance with the task parameters including a parameter indicating the at least one first task is not dependent on one of an occurrence and non-occurrence of an event; for prioritizing an execution schedule for the tasks based on the task parameters including a configured priority; monitoring the execution of the at least one first task to determine a monitored value related to an amount of work completed for the at least one first task; comparing the monitored value related to the amount of work completed to a value based on the tracked credit that is related to an amount of work to be completed by the at least one first task; and throttling the at least one first task from completing additional work when a difference between the monitored value related to the amount of work completed and the value related to the amount of work to be completed meets a second threshold criteria until a pre-defined amount of credit for performing work is accumulated. - View Dependent Claims (31, 32, 33)
-
-
34. A method comprising:
-
scheduling a plurality of processor tasks for execution by one or more processors of a processors system, wherein each task comprises a set of instructions to be executed by at least one processor of the processor system and wherein each task has an associated task profile that specifies task parameters including a calculated start time that characterizes a time at which the corresponding task should be next scheduled to be executed by at least one of the processors, the scheduling; tracking credit for each of the tasks in the list of tasks, wherein credit is accumulated at a rate equal to a corresponding product of work rate and elapsed time, and credit for the task is reduced when the task is selected for execution by the corresponding work completed; comparing a current real time with the calculated start times associated with each of the tasks in the list of tasks; selecting at least one first task to be scheduled for execution from the list of tasks when a value of a difference between the current real time and the calculated start time for the at least one first task meets a first threshold criteria and in accordance with the task parameters including a parameter indicating the at least one first task is not dependent on one of an occurrence and non-occurrence of an event; monitoring execution of the plurality of tasks to determine, for each executing task, a monitored value related to an amount of work completed for the task, wherein the amount of work to be completed is a task parameter that determines expected work to be performed by the corresponding task when it is scheduled for execution; and selectively allocating, or de-allocating processing resources provided by the one or more processors for each task based on a comparison of the monitored value related to the amount of work completed to a value based on the tracked credit that is related to an amount of work to be completed by the corresponding task, wherein the selectively allocating, or de-allocation processors resources comprises;
throttling the at least one first task from completing additional work when a difference between the monitored value related to the amount of work completed and the value related to the amount of work to be completed meets a second threshold criteria until a pre-defined amount of credit for performing work is accumulated.
-
-
35. A computer program product comprising a non-transitory computer storage medium storing instructions, which when executed by at least one or more processors of a processor system, result in operations comprising:
-
creating a list of processor tasks to be executed by the one or more processors of the processor system with each task having an associated task profile that specifies task parameters including a calculated start time, wherein each task comprises a set of instructions to be executed by at least one processor of the processor system and wherein the calculated start time characterizes a time at which the corresponding task should be next scheduled to be executed by at least one of the processors; tracking credit for each of the tasks in the lists of tasks, wherein credit is accumulated at a rate equal to a corresponding product of work rate and elapsed time and credit for the task is reduced when the task is selected for execution by the corresponding work completed; comparing a current real time with the calculated start times associated with each of the tasks in the list of tasks; selecting at least one first task to be scheduled for execution from the list of tasks when a value of a difference between the current real time and the calculated start time for the at least one first task meets a first threshold criteria and in accordance with the task parameters including a parameter indicating the at least one first task is not dependent on one of an occurrence and non-occurrence of an event; monitoring the execution of the at least one first task to determine a monitored value related to an amount of work completed for the at least one first task; comparing the monitored value related to the amount of work completed to a value based on the tracked credit that is related to an amount of work to be completed by the at least one first task; and throttling the at least one first task from completing additional work when a difference between the monitored value related to the amount of work completed and the value related to the amount of work to be completed meets a second threshold criteria until a pre-defined amount of credit for performing work is accumulated. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
-
Specification