A method and apparatus are provided for scheduling tasks within a computing device such as a communication switch. When a task is to be scheduled, other tasks in the work queue are analyzed to see if any can be executed simultaneously with the task to be scheduled. If so, the two tasks are combined to form a combined task, and the combined task is placed within the job queue. In addition, if the computing device has insufficient resources to execute the task to be scheduled, the task is placed back into the work queue for future scheduling. This is done in a way which avoids immediate reselection of the task for scheduling. Task processing efficiency is increased, since combining tasks reduces the waiting time for lower priority tasks, and tasks for which there are insufficient resources are delayed only a short while before a new scheduling attempt, rather than rejecting the task altogether.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A processor for scheduling a first task within a computing device, comprising: a) instructions for accessing a work queue of a plurality of waiting tasks waiting scheduling; b) instructions for determining whether the computing device has sufficient resources to execute the first task and for determining whether the first task is time sensitive, in the event that the computing device does not have sufficient resources to execute the first task; c) instructions for attempting to locate at least one selected task from within the work queue which is capable of being executed simultaneously with the first task, in the event that the computing device has sufficient resources to execute the first task, and for rejecting the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is time sensitive; d) instructions for combining the at least one selected task with the first task to form a combined task and scheduling the combined task, in the event that the computing device has sufficient resources to execute the first task and that at least one selected task is located; and e) instructions for attempting to schedule a second task before attempting to schedule the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is not time sensitive.
2. A computer-readable medium comprising instructions for scheduling a first task within a computing device, comprising: a) instructions for accessing a work queue of a plurality of waiting tasks awaiting scheduling and for determining whether the first task is time sensitive, in the event that the computing device does not have sufficient resources to execute the first task; b) instructions for determining whether the computing device has sufficient resources to execute the first task and for rejecting the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is time sensitive; c) instructions for attempting to locate at least one selected task from within the work queue which is capable of being executed simultaneously with the first task, in the event that the computing device has sufficient resources to execute the first task and for attempting to schedule a second task before attempting to schedule the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is not time sensitive; and d) instructions for combining the at least one selected task with the first task to form a combined task and scheduling the combined task, in the event that the computing device has sufficient resources to execute the first task and that at least one selected task is located.
3. A method for scheduling a first task within a computing device, comprising the steps of: a) accessing a work queue of a plurality of waiting tasks waiting scheduling; b) determining whether the computing device has sufficient resources to execute the first task and for determining whether the first task is time sensitive, in the event that the computing device does not have sufficient resources to execute the first task; c) attempting to locate at least one selected task from within the work queue which is capable of being executed simultaneously with the first task, in the event that the computing device has sufficient resources to execute the first task, and rejecting the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is time sensitive; d) combining the at least one selected task with the first task to form a combined task and scheduling the combined task, in the event that the computing device has sufficient resources to execute the first task and that at least one selected task is located; and e) attempting to schedule a second task before attempting to schedule the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is not time sensitive.
4. A processor for scheduling a first task within a computing device, comprising: a) instructions for accessing a work queue of a plurality of waiting tasks waiting scheduling; b) instructions for determining whether the computing device has sufficient resources to execute the first task and for determining whether the first task is time sensitive, when the computing device does not have sufficient resources to execute the first task; c) instructions for attempting to schedule a second task before attempting to schedule the first task, when the computing device does not have sufficient resources to execute the first task and the first task is not time sensitive; and d) instructions for rejecting the first task such that the first task is immediately eligible for retrieval when the computing device does not have sufficient resources to execute the first task and the first task is time sensitive.
5. A computer-readable medium comprising instructions for scheduling a first task within a computing device, comprising: a) instructions for accessing a work queue of a plurality of waiting tasks awaiting scheduling and for determining whether the first task is time sensitive, in the event that the computing device does not have sufficient resources to execute the first task; b) instructions for determining whether the computing device has sufficient resources to execute the first task and for rejecting the first task, in the event that the computing device does not have sufficient resources to execute the first task and that the first task is time sensitive; c) instructions for attempting to locate at least one selected task from within the work queue which is capable of being executed simultaneously with the first task; and d) instructions for combining the at least one selected task with the first task to form a combined task and scheduling the combined task, in the event that the computing device has sufficient resources to execute the first task and that at least one selected task is located.
6. A method for scheduling a first task within a computing device, comprising the steps of: a) accessing a work queue of a plurality of waiting tasks waiting scheduling; b) determining whether the computing device has sufficient resources to execute the first task and for determining whether the first task is time sensitive, when the computing device does not have sufficient resources to execute the first task; c) attempting to schedule a second task before attempting to schedule the first task, when the computing device does not have sufficient resources to execute the first task and the first task is not time sensitive; and d) rejecting the first task such that the first task is immediately eligible for retrieval when the computing device does not have sufficient resources to execute the first task and the first task is time sensitive.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 30, 2003
July 7, 2009
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.