IP Library Granted Patent US 9,063,780
Granted Patent B2
US 9,063,780 · App. 13/578,245 · Granted Jun 23, 2015

Technique of scheduling tasks in a system

Inventor: Ali Nader (Malmö, SE)
Assignee: TELEFONAKTIEBOLAGET L M ERICSSON (publ)
G06F9/4881
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 9,063,780
App. No.
13/578,245
Granted
Jun 23, 2015
Kind
B2
Abstract

A technique for scheduling tasks in a system is provided. A method implementation of this technique comprises the steps of providing at least one association between a task and a range of priorities for the task and using the at least one association for the task scheduling. The task scheduling may be provided by a task scheduling unit having access to a memory unit.

Claims (68)

1. A method of scheduling tasks in a system comprising:

providing at least one task priority table;

determining whether a first and a second task to be executed in the system are to concurrently use the same resources relating to the system; and

using the at least one task priority table and waiting time for the task scheduling in case it has been determined that the first task and the second task are to concurrently use the same resources relating to the system,

wherein:

the at least one task priority table is adapted to comprise for a first task a first sequential or non-sequential order of priority values including a first lowest possible priority value within the order of priority values and a first highest possible priority value within the order of priority values, and for a second task a sequential or non-sequential order of priority values including a second lowest possible priority value within the order of priority values and a second highest possible priority value within the order of priority values, the first and second sequential or non-sequential orders of priority values overlap, and the first and second tasks are to concurrently use the same resources relating to the system,

the first lowest, second lowest, first highest and second highest possible priority values differ from each other, and

using the at least one task priority table and waiting time for the task scheduling in case it has been determined that the first task and the second task are to concurrently use the same resources relating to the system comprises:

comparing a current priority value of the first task with a current priority value of the second task; and

in case the current priority value of the first task is equal to the current priority value of the second task, performing:

accessing the at least one task priority table to obtain the first and second highest possible priority values;

selecting the first task to be scheduled for execution if the first highest possible priority value is higher than the second highest possible priority value; and

selecting the second task to be scheduled for execution if the second highest possible priority value is higher than the first highest possible priority value,

wherein the first highest possible priority value is a highest possible priority value of the first task, and the second highest possible priority value is a highest possible priority value of the second task.

2. The method of claim 1 , further comprising one or more of the following steps:

providing a first priority indication of a current priority value of the first task within the first order of priority values, wherein the first priority indication is a pointer to a priority value; and

providing a second priority indication of a current priority value of the second task within the second order of priority values, wherein the second priority indication is a pointer to a priority value.

3. The method of claim 2 , further comprising the step of

selecting one of a plurality of tasks to be executed in the system depending on the priority indication.

4. The method of claim 2 , further comprising the step of

changing the current priority value of a task selected to be executed in the system to one of the lowest possible priority value and an initial priority value within its order of priority values.

5. The method of claim 2 , further comprising the step of

increasing the current priority value of at least one task that has not been selected to be executed in the system within its order of priority values.

6. The method of claim 2 , further comprising the step of

changing the current priority values of all tasks to at least one of the lowest possible priority value and an initial priority value within its orders of priority values.

7. The method of claim 1 , further comprising the step of

providing an initial priority value for the task within the order of priority values.

8. The method of claim 1 , further comprising at least one of the steps, in case the at least two tasks have the same current priorities, of

selecting one of the plurality of tasks depending on waiting times of the at least two tasks for being executed in the system,

randomly selecting one of the plurality of tasks.

9. A nontransitory computer-readable storage medium having stored thereon a computer program product including program code portions for performing a method of scheduling tasks in a system when the computer program product is executed on one or more components of a computing device, wherein the method comprises:

providing at least one task priority table;

determining whether a first and a second task to be executed in the system are to concurrently use the same resources relating to the system; and

using the at least one task priority table and waiting time for the task scheduling in case it has been determined that the first task and the second task are to concurrently use the same resources relating to the system,

wherein:

the at least one task priority table is adapted to comprise for a first task a first sequential or non-sequential order of priority values including a first lowest possible priority value within the order of priority values and a first highest possible priority value within the order of priority values, and for a second task a sequential or non-sequential order of priority values including a second lowest possible priority value within the order of priority values and a second highest possible priority value within the order of priority values, the first and second sequential or non-sequential orders of priority values overlap, and the first and second tasks are to concurrently use the same resources relating to the system,

the first lowest, second lowest, first highest and second highest possible priority values differ from each other, and

using the at least one task priority table and waiting time for the task scheduling in case it has been determined that the first task and the second task are to concurrently use the same resources relating to the system comprises:

comparing a current priority value of the first task with a current priority value of the second task; and

in case the current priority value of the first task is equal to the current priority value of the second task, performing:

accessing the at least one task priority table to obtain the first and second highest possible priority values;

selecting the first task to be scheduled for execution if the first highest possible priority value is higher than the second highest possible priority value; and

selecting the second task to be scheduled for execution if the second highest possible priority value is higher than the first highest possible priority value,

wherein the first highest possible priority value is a highest possible priority value of the first task, and the second highest possible priority value is a highest possible priority value of the second task.

10. An electronic device adapted to schedule tasks, comprising:

at least one task priority table adapted to comprise for a first task a first sequential or non-sequential order of priority values including a first lowest possible priority value within the order of priority values and a first highest possible priority value within the order of priority values, and for a second task a sequential or non-sequential order of priority values including a second lowest possible priority value within the order of priority values and a second highest possible priority value within the order of priority values, the first and second sequential or non-sequential orders of priority values overlap, the first and second tasks are to concurrently use the same resources relating to the system; and

a task scheduler adapted to access the at least one task priority table, wherein:

the first lowest, second lowest, first highest and second highest possible priority values differ from each other; and

the task scheduler is further adapted to determine whether a first and a second task to be executed in the system are to concurrently use the same resources relating to the system and to use the at least one task priority table and waiting time for the task scheduling in case it has been determined that the first task and the second task are to concurrently use the same resources relating to the system, and

the task scheduler being adapted to use the at least one task priority table and waiting time for the task scheduling in case it has been determined that the first task and the second task are to concurrently use the same resources relating to the system comprises the task scheduler being adapted to:

compare a current priority value of the first task with a current priority value of the second task; and

in case the current priority value of the first task is equal to the current priority value of the second task, perform:

accessing the at least one task priority table to obtain the first and second highest possible priority values;

selecting the first task to be scheduled for execution if the first highest possible priority value is higher than the second highest possible priority value; and

selecting the second task to be scheduled for execution if the second highest possible priority value is higher than the first highest possible priority value,

wherein the first highest possible priority value is a highest possible priority value of the first task, and the second highest possible priority value is a highest possible priority value of the second task.

11. The electronic device of claim 10 , wherein the task scheduler is adapted to perform one or more of the following:

provide a first priority indication of a current priority value of the first task within the first order of priority values, wherein the first priority indication is a pointer to a priority value; and

provide a second priority indication of a current priority value of the second task within the second order of priority values, wherein the second priority indication is a pointer to a priority value.

12. The electronic device of claim 11 , wherein the task scheduler is adapted to select one of a plurality of tasks to be executed in the device depending on the priority indication.

13. The electronic device of claim 11 , wherein the task scheduler is adapted to change the current priority value of a task selected to be executed in the system to one of the lowest possible priority value and an initial priority value within its order of priority values.

14. The electronic device of claim 11 , wherein the task scheduler is adapted to increase the current priority value of at least one task that has not been selected to be executed in the device within its order of priority values.

15. The electronic device of claim 11 , wherein the task scheduler is adapted to change the current priority values of all tasks to at least one of the lowest possible priority value and an initial priority value within its orders of priority values.

16. The electronic device of claim 10 , wherein the task scheduler is adapted to provide an initial priority value for the task within the order of priority values.

17. The electronic device of claim 10 , wherein the task scheduler is adapted, in case the at least two tasks have the same current priorities, to provide at least one of

selecting one of the plurality of tasks depending on waiting times of the at least two tasks for being executed in the device,

and

randomly selecting one of the plurality of tasks.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT Recorded Aug 9, 2012
From: NADER, ALI
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 028761/0560 →
Priority Claims (1)
EP 10001785 · Feb 22, 2010 · regional
Continuity (2)
Provisional Application 61310453 · Mar 4, 2010
Related Publication 20130042251A1 · Feb 14, 2013