Prev | Up | ____ | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help


D.2.2 The Standard Task Dispatching Policy

Syntax
(1)
(2)
         pragma Task_Dispatching_Policy(policy_identifier );
Legality Rules
(3)
The policy_identifier shall either be FIFO_Within_Priorities or an implementation-defined identifier.
Post-Compilation Rules
(4)
A Task_Dispatching_Policy pragma is a configuration pragma.
(5)
If the FIFO_Within_Priorities policy is specified for a partition, then the Ceiling_Locking policy (see D.3) shall also be specified for the partition.
Dynamic Semantics
(6)
A task dispatching policy specifies the details of task dispatching that are not covered by the basic task dispatching model. These rules govern when tasks are inserted into and deleted from the ready queues, and whether a task is inserted at the head or the tail of the queue for its active priority. The task dispatching policy is specified by a Task_Dispatching_Policy configuration pragma. If no such pragma appears in any of the program units comprising a partition, the task dispatching policy for that partition is unspecified.
(7)
The language defines only one task dispatching policy, FIFO_Within_Priorities; when this policy is in effect, modifications to the ready queues occur only as follows:
(8)
(9)
(10)
(11)
(12)
Each of the events specified above is a task dispatching point (see D.2.1).
(13)
In addition, when a task is preempted, it is added at the head of the ready queue for its active priority.
Documentation Requirements
(14)
Priority inversion is the duration for which a task remains at the head of the highest priority ready queue while the processor executes a lower priority task. The implementation shall document:
(15)
(16)
Implementation Permissions
(17)
Implementations are allowed to define other task dispatching policies, but need not support more than one such policy per partition.
(18)
For optimization purposes, an implementation may alter the points at which task dispatching occurs, in an implementation defined manner. However, a delay_statement always corresponds to at least one task dispatching point.

(19)
(20)
(21)

Prev | Up | ____ | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help

Ada WWW Home -- Email comments, additions, corrections, gripes, kudos, etc. to:

Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12