IP Library › Granted Patent US 8,959,328
Granted Patent B2
US 8,959,328 · App. 11/980,000 · Granted Feb 17, 2015

Device, system, and method for multi-resource scheduling

Inventors: Tong Li (Portland, OR); Scott Hahn (Beaverton, OR)
Assignee: Intel Corporation
G06F9/5038
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,959,328
App. No.
11/980,000
Granted
Feb 17, 2015
Kind
B2
Abstract

A method, apparatus and system for selecting a highest prioritized task for executing a resource from one of a first and second expired scheduling arrays, where the first and second expired scheduling arrays may prioritize tasks for using the resource, and where tasks in the first expired scheduling array may be prioritized according to a proportionality mechanism and tasks in the second expired scheduling array may be prioritized according to an importance factor determined, for example, based on user input, and executing the task. Other embodiments are described and claimed.

Claims (39)

1. A method to manage execution of a task in a multi-resource system, comprising:

interrupting the task in a first array executing on a first resource of the multi-resource system;

calculating a global utilization time indicating a collective amount of time the task collectively executed on a set of resources of the multi-resource system, the set of resources including the first resource and a second resource;

calculating a local utilization time indicating an amount of time the task executed on the first resource of the multi-resource system;

when the global utilization time of the task satisfies a first threshold value, preventing the task from executing on any of the resources in the set of resources; and

when the global utilization time does not satisfy the first threshold value, and the local utilization time satisfies a second threshold value, allowing the task to execute on any resource in the set of resources except the first resource.

2. A method as defined in claim 1 , further comprising moving the task to an expired array in response to the global utilization time satisfying the first threshold value.

3. A method as defined in claim 1 , further comprising moving the task to an expired array to indicate that the task is available for execution by the second resource of the multi-resource system in response to the local utilization time satisfying the second threshold and the global utilization threshold not satisfying the first threshold.

4. A method as defined in claim 1 , wherein the first array comprises an active task array to indicate that the task may be executed by any one of the resources of the multi-resource system.

5. A method as defined in claim 1 , wherein an expired array prioritizes tasks based on each resource utilization proportionality in the multi-resource system.

6. A method as defined in claim 1 , wherein an expired array prioritizes tasks based on a quality of service requirement.

7. A method as defined in claim 1 , further comprising calculating a total time value available to the task based on a product of a task weight and a default constant associated with the multi-resource system.

8. A method as defined in claim 1 , further comprising periodically interrupting the first task in the first array to adjust a priority of the first task.

9. A method as defined in claim 1 , further comprising moving a plurality of tasks satisfying the global utilization time in an expired array to the first array to execute on the first resource when the first array is empty and the expired array is non-empty.

10. An apparatus comprising:

a processor to:

interrupt a task in a first array executing on a first resource of a multi-resource system;

calculate a global utilization time associated with an amount of time the task collectively executed on a set of all resources of the multi-resource system, the set of resources including the first resource and a second resource;

calculate a local utilization time indicating an amount of time the task executed on the first resource of the multi-resource system;

when the global utilization time of the task satisfies a first threshold value, prevent the task from executing on any of the resources in the set of resources; and

when the global utilization time does not satisfy the first threshold value, and the local utilization time satisfies a second threshold value, allow the task to execute on any resource in the set of resources except the first resource.

11. An apparatus as defined in claim 10 , wherein the processor is to move the task to an expired array based on the global utilization time satisfying the first threshold.

12. An apparatus as defined in claim 10 , wherein the processor is to move the task to an expired array to indicate that the task is available for execution by the second resource of the multi-resource system in response to the local utilization time satisfying the second threshold and the global utilization time not satisfying the first threshold.

13. An apparatus as defined in claim 10 , wherein the processor is to prioritize tasks in an expired array based on each resource utilization proportionality in the multi-resource system.

14. An apparatus as defined in claim 10 , wherein the processor is to prioritize tasks in an expired array based on a quality of service requirement.

15. An apparatus as defined in claim 10 , wherein the processor is to calculate a total time value available to the task based on the product of a task weight and a default constant associated with the multi-resource system.

16. An apparatus as defined in claim 10 , wherein the processor is to periodically interrupt the first task in the first array to adjust a priority of the task.

17. An apparatus as defined in claim 10 , wherein the processor is to move a plurality of tasks satisfying the global utilization time in an expired array to the first array to execute on the first resource when the first array is empty and the expired array is non-empty.

18. A tangible machine readable storage device or storage disk comprising instructions, which when executed, cause a machine to, at least:

interrupt a task in a first array executing on a first resource of a multi-resource system;

calculate a global utilization time indicating a collective amount of time the task collectively executed on a set of resources of the multi-resource system, the set of resources including the first resource and a second resource;

calculate a local utilization time indicating an amount of time the task executed on the first resource of the multi-resource system;

prevent the task from executing on any resources in the set of resources when the global utilization time of the task satisfies a first threshold value; and

allow the task to execute on any resource in the set of resources except the first resource when the global utilization time does not satisfy the first threshold value, and the local utilization time satisfies a second threshold value.

19. A machine readable storage device or storage disk as defined in claim 18 , wherein the machine readable instructions, when executed, cause the machine to prioritize tasks based on each resource utilization proportionality in the multi-resource system.

20. A machine readable storage device or storage disk as defined in claim 18 , wherein the machine readable instructions, when executed, cause the machine to prioritize tasks based on a quality of service requirement.

21. A machine readable storage device or storage disk as defined in claim 18 , wherein the machine readable instructions, when executed, cause the machine to calculate a total time value available to the task based on a product of a task weight and a default constant associated with the multi-resource system.

22. A machine readable storage device or storage disk as defined in claim 18 , wherein the machine readable instructions, when executed, cause the machine to periodically interrupt the task in the first array to adjust a priority of the task.

23. A machine readable storage device or storage disk as defined in claim 18 , wherein the machine readable instructions, when executed, cause the machine to move a plurality of tasks satisfying the first utilization time in an expired array to the first array to execute on the first resource when the first array is empty and the expired array is non-empty.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2011
From: LI, TONG; HAHN, SCOTT
To: INTEL CORPORATION
Reel/Frame 026014/0089 →
Continuity (1)
Related Publication 20090125909A1 · May 14, 2009