US2013191841A1PendingUtilityA1

Method and Apparatus For Fine Grain Performance Management of Computer Systems

Assignee: VIRTUALMETRIX INCPriority: Aug 24, 2007Filed: Mar 12, 2013Published: Jul 25, 2013
Est. expiryAug 24, 2027(~1.1 yrs left)· nominal 20-yr term from priority
Inventors:Gary A. Gibson
G06F 9/4881
51
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
1 - 37 . (canceled) 
     
     
         38 . A method comprising:
 calculating credit for a plurality of processor tasks;   selecting, from the plurality of processor tasks, processor tasks for execution by one or more processors of a processor system;   monitoring execution of the selected tasks to determine, for each selected task, a monitored value related to an amount of work completed for the corresponding selected task; and   throttling one of the selected tasks from completing additional work when a difference between the monitored value related to the amount of work completed for such task and a value related to the amount of work to be completed for such task meets a threshold criteria, the throttling ending upon an occurrence of at least one pre-defined event for such task.   
     
     
         39 . A method as in  claim 38 , wherein the at least one pre-defined event comprises a pre-defined amount of credit for performing work is accumulated for such task. 
     
     
         40 . A method as in  claim 39 , 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. 
     
     
         41 . A method as in  claim 40 , further method comprising:
 creating a list of the 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.   
     
     
         42 . A method as in  claim 41 , further comprising:
 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.   
     
     
         43 . A method as in claim as in  claim 42 , further comprising:
 comparing the monitored value related to the amount of work completed to a value based on the calculated credit that is related to an amount of work to be completed by the at least one first task.   
     
     
         44 . A method as in  claim 43 , further comprising: signaling the processor system that the at least one first task has completed its scheduled work and a next selected task should replace the at least one first task. 
     
     
         45 . A method as in  claim 44 , wherein signaling the processor system comprises sending an interrupt to an instruction fetch/branch unit of the processor system. 
     
     
         46 . A method as in  claim 43 , further comprising determining start time including a time between scheduled execution runs of the at least one first task. 
     
     
         47 . A method as in  claim 43 , further comprising controlling allocation of processing resources to the at least one first task by delaying the execution of one or more other tasks that have used their respective workload allocation until sufficient time has passed to accumulate credit for execution above a pre-defined threshold. 
     
     
         48 . A method as in  claim 43 , further comprising: blocking the scheduling of execution of at least one second task when the at least one second task is waiting on the occurrence of an event. 
     
     
         49 . A method as in  claim 43 , wherein the event includes waiting for arrival of one of a message from another task and data from an external input-output device. 
     
     
         50 . A method as in  claim 43 , wherein the task profile comprises one or more of: task priority, work rate, scheduling interval, work to be completed, and maximum work to be completed. 
     
     
         51 . A method as in  claim 43 , further comprising: managing execution of resources by scheduling the tasks based on completing a certain amount of work periodically. 
     
     
         52 . A method as in  claim 43 , wherein the amount of work completed is a measure of one of data transference and processor instructions completed. 
     
     
         53 . A method as in  claim 43 , further comprising: setting the task parameters of the one or more tasks by control software, the task parameters being pre-determined during the process of mapping the corresponding task to a target computer system. 
     
     
         54 . A method as in  claim 38 , wherein the tasks are selected from a group consisting of: computer processes, instances of computer programs that are being executed, threads of execution including one or more simultaneously, pseudo-simultaneously, executing instances of a computer program closely sharing resources that execute within one or more processors, virtual machines including virtual execution environments on one or more processors, or state machine tasks. 
     
     
         55 . A method as in  claim 43 , wherein the at least one first task has a smallest calculated start time as compared to other tasks having a same task priority class. 
     
     
         56 . A method as in  claim 43 , further comprising: allocating at least one buffer occupancy value to each task and storing the buffer occupancy value as a parameter of the associated task profile, the buffer occupancy value related to one of a buffer size value and number of buffers. 
     
     
         57 . A method as in  claim 56 , further comprising: monitoring allocation of buffers on behalf of a task to determine a monitored buffer value related to one of a buffer size value and number of buffers. 
     
     
         58 . A method as in  claim 57 , further comprising: comparing the monitored buffer value to a buffer occupancy value associated with a task and taking a responsive action when a difference between the monitored buffer value and the buffer occupancy value meets a second threshold criteria. 
     
     
         59 . A method as in  claim 58 , wherein the responsive action includes one of replacing the buffers of the task and preventing the allocation of new buffers. 
     
     
         60 . A method as  claim 38 , wherein the processor system is a state machine, and the tasks are state machine tasks. 
     
     
         61 . A method as in  claim 43 , wherein the start time is calculated continuously or when the task is no longer being executed. 
     
     
         62 . A method as in  claim 43 , wherein the task list can be created dynamically, with tasks added and subtracted over time. 
     
     
         63 . A method as in  claim 41 , 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. 
     
     
         64 . A method as in  claim 41 , wherein at least one of the task parameters dynamically changes prior to completion of execution of the task. 
     
     
         65 . A method as in  claim 64 , wherein the at least of the task parameters changes based on buffer occupancy values. 
     
     
         66 . A method as in  claim 38 , wherein credit for each task is based on a product of (i) a difference between a start time for the task and a current time, and (ii) a work rate for the task. 
     
     
         67 . A method comprising:
 selecting tasks for execution by one or more processors of a processor system;   allocating at least one buffer occupancy value to each task that relates to one of a buffer size value and number of buffers;   monitoring allocation of buffers on behalf of a task to determine a monitored buffer value related to one of a buffer size value and number of buffers;   comparing the monitored buffer value to a buffer occupancy value associated with a task; and   taking a responsive action when a difference between the monitored buffer value and the at least one buffer occupancy value meets a threshold criteria, the responsive action including one of replacing the buffers of the task and preventing the allocation of new buffers.   
     
     
         68 . A non-transitory computer program product storing instructions, which when executed by at least one data processor of at least one computing system, result in operations comprising:
 calculating credit for a plurality of processor tasks;   selecting, from the plurality of processor tasks, processor tasks for execution by one or more processors of a processor system;   monitoring execution of the selected tasks to determine, for each selected task, a monitored value related to an amount of work completed for the corresponding selected task; and   throttling one of the selected tasks from completing additional work when a difference between the monitored value related to the amount of work completed for such task and a value related to the amount of work to be completed for such task meets a threshold criteria, the throttling ending upon an occurrence of at least one pre-defined event for such task.

Join the waitlist — get patent alerts

Track US2013191841A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.