The dispatcher is the RTEMS component responsible for allocating the processor to a ready task. In order to allocate the processor to one task, it must be deallocated or retrieved from the task currently using it. This involves a concept called a context switch. To perform a context switch, the dispatcher saves the context of the current task and restores the context of the task which has been allocated to the processor. Saving and restoring a task's context is the storing/loading of all the essential information about a task to enable it to continue execution without any effects of the interruption. For example, the contents of a task's register set must be the same when it is given the processor as they were when it was taken away. All of the information that must be saved or restored for a context switch is located either in the TCB or on the task's stacks.
Tasks that utilize a numeric coprocessor and are
created with the RTEMS_FLOATING_POINT
attribute
require additional operations during a context switch. These
additional operations
are necessary to save and restore the floating point context of
RTEMS_FLOATING_POINT
tasks. To avoid unnecessary save and restore
operations, the state of the numeric coprocessor is only saved
when a RTEMS_FLOATING_POINT
task is dispatched and that task was not
the last task to utilize the coprocessor.
Copyright © 1988-2008 OAR Corporation