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_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);
- Ada (programming language)
- SPARK (programming language)
- From "Ada Reference Manual (Ada 202x Draft 19"): (D.13 The Ravenscar and Jorvik Profiles)
- 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.
- The Ravenscar Profile, by Paul Parkinson
- A Ravenscar runtime for ARM processors
- Discussion about implementation Ravenscar Profile for ARM's
|This programming-language-related article is a stub. You can help Wikipedia by expanding it.|