Profil Ravenscar

Profilul Ravenscar este un subset al Ada limbajului dedicat sistemelor în timp real care necesită operațională înaltă fiabilitate . Restricționează doar funcționalitățile legate de paralelism .

Ideea este de a face posibilă demonstrarea formală a proprietăților în timp real ale programelor scrise conform acestui profil. Profilul Ravenscar, prin interzicerea unui anumit număr de caracteristici ale limbajului Ada, face posibilă aplicarea instrumentelor de probă a programului.

Restricțiile introduse permit, de asemenea, crearea unor directori mai simpli și, prin urmare, ei înșiși certificabili.

Acest profil a fost aplicat și specificațiilor RTSJ în timp real ale limbajului Java .

Restricții impuse de profil

Profilul Ravenscar este acum integrat în standardul Ada (2005). Doar aplicați următoarea directivă de compilare:

pragma Profile (Ravenscar);

Acest profil este echivalent cu următorul set de pragme de configurare:

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);

Referințe

Note

  1. J. Kwon, A. Wellings și S. King, „Ravenscar-Java: A High Integrity Profile for Real-Time Java”, York Technical Report (YCS 342), Departamentul de Informatică, Universitatea York, 2002, [ citeste online ]