Es parte de los estándares ARINC de la serie 600 para aeronaves digitales y simuladores de vuelo.
Descripción general
Para disociar la plataforma del sistema operativo en tiempo real del software de aplicación, ARINC 653 define una API llamada Application Executive (APEX).
Cada software de aplicación se denomina partición y tiene su propio espacio de memoria. También tiene un espacio de tiempo dedicado asignado por la API APEX. Dentro de cada partición , se permite la multitarea . La API APEX proporciona servicios para administrar particiones, procesos y tiempos, así como comunicación entre particiones y procesos y manejo de errores. El entorno de particionamiento se puede implementar mediante el uso de un hipervisor [2] para asignar particiones a máquinas virtuales, pero esto no es obligatorio.
La norma está supervisada por el Subcomité APEX de la AEEC [1].
Historia
Versión inicial
La versión inicial de ARINC 653 se publicó el 10 de octubre de 1996.
ARINC 653-1
El Suplemento 1 se publicó en enero de 1997 e introdujo los conceptos de APEX y partición de tiempo y espacio.
ARINC 653-2
El Suplemento 2 se publicó en tres partes entre marzo de 2006 y enero de 2007: [3]
Parte 1 (servicios obligatorios): Gestión de particiones ARINC 653, Definición de inicio en frío y inicio en caliente, Manejo de errores de software de aplicación, Cumplimiento de ARINC 653, Enlaces de lenguaje Ada y C ;
Una implementación para los servicios ARINC 653 (la API APEX).
Una interfaz para poder configurar la plataforma y su dominio de uso.
Varias herramientas de instrumentación.
Inicialización
La inicialización de una partición ARINC 653 crea recursos utilizados por la partición. La creación de recursos (PROCESO, EVENTO, SEMAPHORE...) se realiza llamando a los servicios API denominados CREATE_xxxx .
Manejo de errores
El controlador de errores de proceso es un proceso preventivo de máxima prioridad dedicado a gestionar excepciones de partición. Lo crea el servicio CREATE_ERROR_HANDLER durante la inicialización de la partición.
La API permite que el controlador de errores detenga un proceso defectuoso ( STOP_SELF ). En ese caso, el programador RTOS solicitará el siguiente proceso con la prioridad más alta.
ARINC 653 no especifica cómo debe comportarse el programador si el controlador de errores no detiene un proceso defectuoso. En algunos casos (teóricos), esto podría generar un bucle infinito entre el proceso defectuoso y el controlador de errores.
El controlador de errores puede obtener información sobre la fuente y el contexto de la excepción.
Gestión de modos
Cada partición puede estar en varios modos de activación:
COLD_START y WARM_START: Solo se ejecuta el proceso de inicialización,
IDLE: No se ejecuta ningún proceso. Sin embargo, en teoría, una implementación podría ejecutar un proceso oculto de menor prioridad, por ejemplo, para iniciar un bucle infinito.
El servicio SET_PARTITION_MODE permite gestionar estos estados. Puede ser llamado por cualquier proceso de la partición. Entrar en el estado IDLE es irreversible para la partición. Solo un evento externo (como un reinicio de la plataforma) puede cambiar el estado a otro modo cuando la partición está en este estado.
Particiones y programación de procesos
El estándar define una programación jerárquica de dos niveles. El primer nivel programa las particiones. Se trata de una programación fija, por turnos, que repite un marco temporal principal. El marco temporal principal programa cada partición en un marco temporal secundario de duración fija con un desfase fijo desde el inicio del marco temporal principal.
Dentro del marco temporal menor, el segundo nivel utiliza la programación de procesos. Cada partición tiene al menos un proceso . La programación de procesos dentro de un marco temporal menor es preemptiva . El programador es llamado por un temporizador o por servicios API.
Multinúcleo
Se actualizó ARINC 653 P1-5 para abordar las arquitecturas de procesadores multinúcleo . La sección 4.2.1 "Cumplimiento de la implementación multinúcleo del sistema operativo" indica que un sistema operativo diseñado para el procesamiento multinúcleo debe admitir dos casos:
Uso de múltiples núcleos por una sola partición (cuyos procesos abarcan múltiples núcleos)
Uso de múltiples núcleos por múltiples particiones
El documento de posición CAST-32A define un conjunto de requisitos y orientaciones que la FAA debe cumplir para certificar y utilizar procesadores multinúcleo en la aviación civil y se espera que sea reemplazado por una Circular Asesora , AC 20-193. La autoridad de aviación de la Unión Europea, EASA, publicó la AMC 20-193 en enero de 2022. [11]
Servicios API
Los servicios APEX de ARINC 653 son llamadas API que pertenecen a seis categorías:
Gestión de particiones
Gestión de procesos
Gestión del tiempo
Comunicación entre particiones
Comunicación intrapartición
Manejo de errores
No se proporcionan servicios ARINC 653 para la gestión de memoria de particiones. Cada partición debe gestionar su propia memoria (aún bajo las limitaciones de particionamiento de memoria impuestas por ARINC 653).
Cada servicio devuelve un valor RETURN_CODE que indica si la llamada fue exitosa:
NO_ERROR: el servicio se realizó nominalmente después de una solicitud válida
NO_ACTION: el estado del sistema no ha cambiado después de ejecutar el servicio
NO DISPONIBLE: el servicio no está disponible temporalmente
INVALID_PARAM: al menos uno de los parámetros del servicio no es válido
INVALID_CONFIG: al menos uno de los parámetros del servicio es incompatible con la configuración actual del sistema
INVALID_MODE: el servicio es incompatible con el modo actual del sistema
TIMED_OUT: el retraso para la ejecución del servicio ha expirado
Enlaces a POSIX y ASAAC
El campo cubierto por ARINC 653 es similar al de ASAAC Def Stan 00-74 . Sin embargo, existen diferencias entre las dos normas. [12]
Algunas llamadas ARINC 653 (APEX) tienen un equivalente POSIX , pero son diferentes de cómo se definen en POSIX. [12]
Por ejemplo, la siguiente llamada definida en ASAAC:
recibirBuffer
Sería traducido en ARINC 653 por:
RECIBIR_BUFFER()
y también en POSIX por:
recibir()
Referencias
^ "ARINC 653 - Un estándar de aviónica para sistemas particionados seguros" (PDF) . Seminario de Wind River Systems / IEEE . Agosto de 2008. Archivado desde el original (PDF) el 2009-10-07 . Consultado el 2009-05-30 .
^ VanderLeest, SH (1 de octubre de 2010). "Hipervisor ARINC 653". 29.ª Conferencia sobre sistemas de aviónica digital . págs. 5.E.2–1–5.E.2–20. doi :10.1109/DASC.2010.5655298. ISBN978-1-4244-6616-0. Número de identificación del sujeto 5784484.
^ "Product Focus: ARINC 653 y RTOS". aviationtoday.com. 2004-07-01. Archivado desde el original el 2009-12-03 . Consultado el 2009-05-30 .
^ "Interfaz estándar de software de aplicación de aviónica: Especificación ARINC 653 Parte 0". Aeronautical Radio, Inc. 23 de diciembre de 2019. Archivado desde el original el 3 de febrero de 2022.
^ "Interfaz estándar de software de aplicación de aviónica: especificación ARINC 653P1-3, servicios requeridos". Aeronautical Radio, Inc. 4 de febrero de 2022. Archivado desde el original el 12 de agosto de 2020. Consultado el 4 de febrero de 2022 .
^ "Interfaz estándar de software de aplicación de aviónica: Especificación ARINC 653P2-2, Parte 2, Servicios ampliados". Aeronautical Radio, Inc. 23 de diciembre de 2019. Archivado desde el original el 12 de agosto de 2020. Consultado el 4 de febrero de 2022 .
^ "653P3A-2 Interfaz estándar de software de aplicación de aviónica, Parte 3A, Especificaciones de prueba de conformidad para servicios requeridos por ARINC 653". SAE ITC . 2021-11-17 . Consultado el 2022-02-04 .
^ "653P3Bc1 Interfaz estándar de software de aplicación de aviónica, parte 3B, especificaciones de prueba de conformidad para servicios extendidos ARINC 653". SAE ITC . 2019-07-18 . Consultado el 2022-02-04 .
^ "Interfaz estándar de software de aplicación de aviónica: Especificación ARINC 653 Parte 4, Servicios de subconjunto". Aeronautical Radio, Inc. 2012-06-01. Archivado desde el original el 2012-08-25 . Consultado el 2013-10-20 .
^ "Interfaz estándar de software de aplicación de aviónica 653P5-1, Parte 5, Capacidades recomendadas del software principal". SAE ITC . 2019-08-07 . Consultado el 2022-02-04 .
^ ""Enmienda 23 de la AMC-20"". EASA. 2022-12-26 . Consultado el 2022-12-22 .
^ ab "Flexibilidad y capacidad de gestión de proyectos IMS" (PDF) . Universidad de York . Consultado el 27 de julio de 2008 .