Task scheduling method and apparatus
First Claim
1. An apparatus for scheduling execution of a plurality of tasks by a processor, each of the plurality of tasks having an associated periodicity and an associated priority based upon the associated periodicity comprising:
- the processor to execute each of the plurality of tasks periodically according to the associated periodicity of the task; and
a scheduler, at each of a series of scheduling time points, to;
update the priorities of the plurality of tasks;
determine whether a task needs to be executed in accordance with the periodicity associated with that task;
group the plurality of tasks into a plurality of priority lists, each priority list of the plurality of priority lists has the same periodicities associated with the tasks grouped into the priority list, the plurality of priority lists includes a priority list of communication path tasks associated with communication paths that have just been closed; and
schedule the plurality of tasks that need to be executed in accordance with the priorities of the tasks, wherein the scheduler is to update the priorities of the plurality of tasks by;
identifying an unexecuted task which, at a preceding scheduling time point, was scheduled for execution but which, since that preceding scheduling time point, has not been executed; and
increasing the priority of the unexecuted task by setting the priority of the unexecuted task as greater than the priority of other tasks that have the same periodicity as the unexecuted task and that are not themselves unexecuted tasks.
21 Assignments
0 Petitions
Accused Products
Abstract
An apparatus schedules execution of a plurality of tasks by a processor. Each task has an associated periodicity and an associated priority based upon the associated periodicity. The processor executes each of the plurality of tasks periodically according to the associated periodicity of the task. A scheduler, at each of a series of scheduling time points updates the priorities of the plurality of tasks and schedules the tasks that need to be executed in accordance with their priorities. The scheduler identifies an unexecuted task which, at a preceding scheduling time point, was scheduled for execution but which, since that preceding scheduling time point, has not been executed. The scheduler sets the priority of the unexecuted task as greater than the priority of other tasks that have the same periodicity as the unexecuted task and that are not themselves unexecuted tasks.
-
Citations
17 Claims
-
1. An apparatus for scheduling execution of a plurality of tasks by a processor, each of the plurality of tasks having an associated periodicity and an associated priority based upon the associated periodicity comprising:
-
the processor to execute each of the plurality of tasks periodically according to the associated periodicity of the task; and a scheduler, at each of a series of scheduling time points, to; update the priorities of the plurality of tasks; determine whether a task needs to be executed in accordance with the periodicity associated with that task; group the plurality of tasks into a plurality of priority lists, each priority list of the plurality of priority lists has the same periodicities associated with the tasks grouped into the priority list, the plurality of priority lists includes a priority list of communication path tasks associated with communication paths that have just been closed; and schedule the plurality of tasks that need to be executed in accordance with the priorities of the tasks, wherein the scheduler is to update the priorities of the plurality of tasks by; identifying an unexecuted task which, at a preceding scheduling time point, was scheduled for execution but which, since that preceding scheduling time point, has not been executed; and increasing the priority of the unexecuted task by setting the priority of the unexecuted task as greater than the priority of other tasks that have the same periodicity as the unexecuted task and that are not themselves unexecuted tasks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-readable medium comprising instructions to manipulate one or more processors on one or more computing devices, the instructions comprising a plug-in to an operating system, the plug-in containing:
-
instructions to update the priorities of a plurality of tasks, each of the plurality of tasks having an associated periodicity and each of the plurality of tasks to be executed according to the associated periodicity; instructions to determine whether a task of the plurality of tasks needs to be executed in accordance with the periodicity associated with that task; instructions to group the plurality of tasks into a plurality of priority lists, each priority list of the plurality of priority lists has the same periodicities associated with the tasks grouped into the priority list, the plurality of priority lists includes a priority lists of communication path tasks associated with communication paths that have just been close; and instructions to schedule the plurality of tasks that need to be executed in order to complete them in accordance with their periodicity. - View Dependent Claims (11, 12)
-
-
13. A method of scheduling execution of a plurality of tasks by a processor, each of the plurality of tasks having an associated periodicity, each of the plurality of tasks having an associated priority based upon the associated periodicity of the task, and the plurality of tasks arranged in priority queues, wherein all tasks in a priority queue have the same associated periodicity, the method comprising:
-
executing tasks of the plurality of tasks by the processor periodically, according to the associated periodicity of the tasks; and at each of a series of scheduling time points; updating the priorities of the tasks; and scheduling the plurality of tasks that need to be executed in accordance with the priorities of the tasks, wherein the updating comprises; searching for a task with higher priority than the scheduled tasks; if a task with a higher priority than a scheduled task is found, attempting to replace the scheduled task with the higher priority task on a schedule of tasks; if the attempt is not successful, increasing the priority of the task with the higher priority within the priority queue of the higher priority task; and if the attempt to replace the scheduled task with the task with the higher priority is not successful at a scheduling time point and if the task with the higher priority has higher priority than another scheduled task at the next scheduling time point, replacing the other scheduled task with the task with the higher priority on the schedule pursuant to a policy wherein a higher priority task is not permitted to fail twice to replace a lower priority scheduled task. - View Dependent Claims (14, 15, 16, 17)
-
Specification