Perfil Ravenscar

De Viquipèdia
Dreceres ràpides: navegació, cerca

El perfil Ravenscar[1] és un conjunt de restriccions inicialment per al llenguatge de programació Ada per ajustar les capacitats del llenguatge als condicionants dels sistemes de temps real de seguretat crítica. Aquest perfil ha estat darrerament adaptat al llenguatge Java en la plataforma Java de Temps Real[2]

Història[modifica | modifica el codi]

El perfil va ésser definit en el vuitè International Real-Time Applications Workshop,[1] celebrat el 1997 en un poblet del comtat de Yorkshire (Anglaterra) anomenat Ravenscar. Encara que inicialment va prendre la denominació del poble de la trobada, més tard se li va treure punta per associar les lletres del nom als temes involucrats com si fos un acrònim: Reliable Ada Verifiable Executive Needed for Scheduling Critical Applications in Real-Time.

Objectius del perfil[modifica | modifica el codi]

Els objectius són:

  • Aconseguir un model d'execució concurrent determinista.
  • Permetre una implementació que no creï excessiva sobrecàrrega perquè les tasques puguin respondre en terminis molt breus.

Restriccions del perfil[modifica | modifica el codi]

El perfil es concreta en una sèrie de pragmes (instruccions al compilador)

pragma Task_Dispatching_Policy (FIFO_Within_Priorities);

pragma Locking_Policy (Ceiling_Locking);

pragma Detect_Blocking; -- nou a l'Ada2005[3]

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

en la versió Ada2005 es poden resumir en

pragma Profile (Ravenscar);

Referències[modifica | modifica el codi]

  1. 1,0 1,1 El perfil Ravenscar
  2. Ravenscar-Java: A High Integrity Profile for Real-Time Java (anglès)
  3. Ada2005 - El perfil Ravenscar

Enllaços externs[modifica | modifica el codi]