The Ravenscar profile is a subset of the
Ada tasking features designed for
safety-critical hard
real-time computing
Real-time computing (RTC) is the computer science term for Computer hardware, hardware and software systems subject to a "real-time constraint", for example from Event (synchronization primitive), event to Event (computing), system response. Rea ...
. 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
*
Ada (programming language)
Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has built-in language support for '' design by contract'' (DbC), extremely strong typing, exp ...
*
High integrity software
*
SPARK (programming language)
SPARK is a formally defined computer programming language based on the Ada language, intended for developing high integrity software used in systems where predictable and highly reliable operation is essential. It facilitates developing app ...
* From "Ada Reference Manual (Ada 2022"):
D.13 The Ravenscar and Jorvik Profiles
References
*
*
*
External links
A Ravenscar runtime for ARM processorsDiscussion about implementation Ravenscar Profile for ARM's
Ada (programming language)
Ada programming language family
Articles with example Ada code
{{Prog-lang-stub