D.13 The Ravenscar Profile
This subclause defines the Ravenscar profile.
The usage profile Ravenscar
is equivalent to the following set of pragmas:
pragma Task_Dispatching_Policy (FIFO_Within_Priorities);
pragma Locking_Policy (Ceiling_Locking);
pragma Restrictions (
Max_Entry_Queue_Length => 1,
Max_Protected_Entries => 1,
Max_Task_Entries => 0,
No_Dependence => Ada.Asynchronous_Task_Control,
No_Dependence => Ada.Calendar,
No_Dependence => Ada.Execution_Time.Group_Budgets,
No_Dependence => Ada.Execution_Time.Timers,
No_Dependence => Ada.Task_Attributes,
No_Dependence => System.Multiprocessors.Dispatching_Domains);
Paragraph 7 was deleted.
A task shall only be on the ready queues of one processor,
and the processor to which a task belongs shall be defined statically.
Whenever a task running on a processor reaches a task dispatching point,
it goes back to the ready queues of the same processor. A task with a
CPU value of Not_A_Specific_CPU will execute on an implementation defined
processor. A task without a CPU aspect will activate and execute on the
same processor as its activating task.
On a multiprocessor system, an implementation should
support a fully partitioned approach. Each processor should have separate
and disjoint ready queues.
42 The effect of the Max_Entry_Queue_Length
=> 1 restriction applies only to protected entry queues due to the
accompanying restriction of Max_Task_Entries => 0.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe