System and method for optimizing dispatch latency of tasks in a data processing system
First Claim
1. A method of enhancing task scheduling efficiency in a data processing system having a processor, a memory, and a multitasking operating system for managing the processor and the memory, the method comprising the data processing system implemented steps of:
- providing both a first expedited task scheduling path for tasks and a second task scheduling path for tasks in a scheduler within said multitasking operating system, said first expedited task scheduling path implemented in assembly language and having a code sequence for minimizing state chain linking and unlinking and said second task scheduling path including a timer set to terminate a task upon elapse thereof;
assigning an execution priority to each of a plurality of tasks within said data processing system for execution on the processor;
periodically placing selected tasks in a ready-to-run queue within said data processing system;
periodically selecting a task holding a highest execution priority from among said selected tasks in the ready-to-run queue;
determining if a task is executing on the processor;
if a task is executing on the processor, comparing the execution priority of the selected task to the execution priority of the executing task;
responsive to the selected task holding a higher execution priority or to absence of an executing task, processing the selected task for execution on the processor along said first expedited scheduling path; and
processing the selected task for execution on the processor along said second scheduling path responsive to the presence of an executing task holding an execution priority higher than the selected task.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention provides a system and method of enhancing efficiency in a data processing system having a processor, a memory, and a multitasking operating system for managing the processor and the memory. A normal and an expedited scheduling path are provided for scheduling tasks on the processor. The tasks are each assigned a priority for execution on the processor. A queue is provided for the placement of tasks ready for execution. Upon entry into the ready-to-run queue, the execution priority of the new task is compared to the execution priority of the executing task. Responsive to the new task holding a higher execution priority or to absence of an executing task, the expedited scheduling path is invoked. Otherwise the normal scheduling path is invoked.
106 Citations
8 Claims
-
1. A method of enhancing task scheduling efficiency in a data processing system having a processor, a memory, and a multitasking operating system for managing the processor and the memory, the method comprising the data processing system implemented steps of:
-
providing both a first expedited task scheduling path for tasks and a second task scheduling path for tasks in a scheduler within said multitasking operating system, said first expedited task scheduling path implemented in assembly language and having a code sequence for minimizing state chain linking and unlinking and said second task scheduling path including a timer set to terminate a task upon elapse thereof; assigning an execution priority to each of a plurality of tasks within said data processing system for execution on the processor; periodically placing selected tasks in a ready-to-run queue within said data processing system; periodically selecting a task holding a highest execution priority from among said selected tasks in the ready-to-run queue; determining if a task is executing on the processor; if a task is executing on the processor, comparing the execution priority of the selected task to the execution priority of the executing task; responsive to the selected task holding a higher execution priority or to absence of an executing task, processing the selected task for execution on the processor along said first expedited scheduling path; and processing the selected task for execution on the processor along said second scheduling path responsive to the presence of an executing task holding an execution priority higher than the selected task. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A data processing system comprising:
-
a processor; a memory; a multitasking operating system within said data processing system for managing the processor and the memory; a scheduler in the multitasking operating system having a first expedited scheduling path for tasks within said data processing system and a second scheduling path for tasks within said data processing system, said first expedited task scheduling path implemented in assembly language and having a code sequence for minimizing state chain linking and unlinking and said second task scheduling path including a timer set to terminate a task upon elapse thereof; means for assigning an execution priority to each of a plurality of tasks within said data processing system for execution on the processor; means for periodically placing selected tasks in a ready-to-run queue within said data processing system; means for periodically selecting a task holding a highest execution priority from among said selected tasks in the ready-to-run queue; means for determining if a task is executing on the processor; means responsive to execution of a task on the processor for comparing the execution priority of the selected job to the execution priority of the executing task; means responsive to the selected task holding a higher execution priority than the executing job or to absence of an executing task on the processor for processing the selected task for execution on the processor along said first expedited scheduling path; and means processing the selected task for execution on the processor along said second scheduling path responsive to the presence of an executing task holding an execution priority higher than the selected task. - View Dependent Claims (7, 8)
-
Specification