Next: Pragma Profile_Warnings, Previous: Pragma Priority_Specific_Dispatching, Up: Implementation Defined Pragmas
pragma Profile (Ravenscar | Restricted | Rational);
This pragma is standard in Ada 2005, but is available in all earlier
versions of Ada as an implementation-defined pragma. This is a
configuration pragma that establishes a set of configiuration pragmas
that depend on the argument. Ravenscar is standard in Ada 2005.
The other two possibilities (Restricted or Rational)
are implementation-defined. The set of configuration pragmas
is defined in the following sections.
Ravenscar profile is standard in Ada 2005,
but is available in all earlier
versions of Ada as an implementation-defined pragma. This profile
establishes the following set of configuration pragmas:
Task_Dispatching_Policy (FIFO_Within_Priorities)Locking_Policy (Ceiling_Locking)Detect_BlockingMax_Entry_Queue_Length => 1Max_Protected_Entries => 1Max_Task_Entries => 0No_Abort_StatementsNo_Dynamic_AttachmentNo_Dynamic_PrioritiesNo_Implicit_Heap_AllocationsNo_Local_Protected_ObjectsNo_Local_Timing_EventsNo_Protected_Type_AllocatorsNo_Relative_DelayNo_Requeue_StatementsNo_Select_StatementsNo_Specific_Termination_HandlersNo_Task_AllocatorsNo_Task_HierarchyNo_Task_TerminationSimple_BarriersNo_Dependence => Ada.Asynchronous_Task_ControlNo_Dependence => Ada.CalendarNo_Dependence => Ada.Execution_Time.Group_BudgetNo_Dependence => Ada.Execution_Time.TimersNo_Dependence => Ada.Task_AttributesNo_Dependence => System.Multiprocessors.Dispatching_DomainsThis set of configuration pragmas and restrictions correspond to the definition of the “Ravenscar Profile” for limited tasking, devised and published by the International Real-Time Ada Workshop, 1997, and whose most recent description is available at http://www-users.cs.york.ac.uk/~burns/ravenscar.ps.
The original definition of the profile was revised at subsequent IRTAW meetings. It has been included in the ISO Guide for the Use of the Ada Programming Language in High Integrity Systems, and has been approved by ISO/IEC/SC22/WG9 for inclusion in the next revision of the standard. The formal definition given by the Ada Rapporteur Group (ARG) can be found in two Ada Issues (AI-249 and AI-305) available at http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ais/ai-00249.txt and http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ais/ai-00305.txt.
The above set is a superset of the restrictions provided by pragma
Profile (Restricted), it includes six additional restrictions
(Simple_Barriers, No_Select_Statements,
No_Calendar, No_Implicit_Heap_Allocations,
No_Relative_Delay and No_Task_Termination). This means
that pragma Profile (Ravenscar), like the pragma
Profile (Restricted),
automatically causes the use of a simplified,
more efficient version of the tasking run-time system.
This set of restrictions causes the automatic selection of a simplified version of the run time that provides improved performance for the limited set of tasking functionality permitted by this set of restrictions.