Jump to content

Ravenscar profile

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 2.155.74.125 (talk) at 16:42, 30 December 2020 (Add No_Calendar in the pragma restrictions.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Ravenscar profile is a subset of the Ada tasking features designed for safety-critical hard real-time computing. It was defined by a separate technical report in Ada 95; it is now part of the Ada 2012 Standard. It has been named after the English village of Ravenscar, the location of the 8th International Real-Time Ada Workshop (IRTAW 8).

Restrictions of the profile

A Ravenscar Ada application uses the following compiler directive:

pragma Profile (Ravenscar);

This is the same as writing the following set of configuration pragmas:

pragma Task_Dispatching_Policy (FIFO_Within_Priorities);
pragma Locking_Policy (Ceiling_Locking);
pragma Detect_Blocking;
pragma Restrictions (
                 No_Abort_Statements,
                 No_Calendar,
                 No_Dynamic_Attachment,
                 No_Dynamic_Priorities,
                 No_Implicit_Heap_Allocations,
                 No_Local_Protected_Objects,
                 No_Local_Timing_Events,
                 No_Protected_Type_Allocators,
                 No_Relative_Delay,
                 No_Requeue_Statements,
                 No_Select_Statements,
                 No_Specific_Termination_Handlers,
                 No_Task_Allocators,
                 No_Task_Hierarchy,
                 No_Task_Termination,
                 Simple_Barriers,
                 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_Budget,
                 No_Dependence => Ada.Execution_Time.Timers,
                 No_Dependence => Ada.Task_Attributes);

See also

References

  • Alan Burns (December 1999). "The Ravenscar Profile" (PDF). ACM SIGAda Ada Letters. XIX (4): 49–52. doi:10.1145/340396.340450.
  • Alan Burns, Brian Dobbing and Tullio Vardanega (June 2004). "Guide for the use of the Ada Ravenscar Profile in high integrity systems" (PDF). ACM SIGAda Ada Letters. XXIV (2): 1–74. doi:10.1145/997119.997120.
  • Ravenscar profile for high-integrity systems (Technical report). ISO/WG9 Ada Rapporteur Group. AI95-00249.