A task is ready if it is in a ready queue, or if it is running. Each processor has one ready queue for each priority value. A task can be on the ready queues of more than one processor. 6 Each processor also has one running task , which is the task currently being executed by that processor. Whenever a task running on a processor reaches a task dispatching point, one task is selected to run on that processor.
Processors are preemptible resources.
When a higher-priority task is dispatched to the processor, and the previously running task is placed on the appropriate ready queue, the latter task is said to be preempted . A new running task is also selected whenever there is a nonempty ready queue with a higher priority than the priority of the running task, or when the task dispatching policy requires a running task to go back to a ready queue. These are also task dispatching points. An implementation is allowed to define additional resources as execution resources, and to define the corresponding allocation policies for them. The ready state is affected by the rules for task activation and termination, delay statements, and entry calls.