stringtranslate.com

OpenComRTOS

OpenComRTOS es un sistema operativo en tiempo real (RTOS) desarrollado formalmente y centrado en redes comerciales , dirigido principalmente al mercado de sistemas integrados .

Descripción general

OpenComRTOS se desarrolló utilizando métodos formales . Tiene características como la capacidad de soportar sistemas multiprocesador heterogéneos de forma transparente, independientemente del tamaño de palabra del procesador ( 16 bits , 24 bits , 32 bits , 64 bits ) y del medio de comunicación (memoria compartida, buses, enlaces punto a punto o enlaces virtuales en mecanismos de comunicación existentes). El tamaño típico del código en un procesador de destino de 32 bits es de aproximadamente 5 KiBytes.

OpenComRTOS se basa en el paradigma de metamodelado de Entidades Interactuantes . En el RTOS, la unidad de ejecución es una Tarea (una función con su espacio de trabajo local o pila). Las entidades de Tarea se sincronizan y se comunican mediante entidades Hubs intermedias que están desacopladas de las Tareas que interactúan. Los Hubs se modelan formalmente como Acciones Protegidas . La implementación actual proporciona las funciones de los servicios RTOS tradicionales como eventos, semáforos, puertos, pilas FIFO (primero en entrar, primero en salir ), recursos, grupos de paquetes y grupos de memoria . El usuario también puede crear tipos de Hub personalizados.

OpenComRTOS utiliza una arquitectura uniforme con una tarea de núcleo , tareas de controlador y tareas de aplicación, cada una con un puerto de entrada de tarea. Se utiliza la misma interfaz para las rutinas de servicio de interrupción. La arquitectura subyacente se basa en el uso de conmutación de paquetes priorizada , siendo la comunicación y el enrutamiento parte de los servicios del sistema subyacentes. Uno de los resultados es que el código fuente de las tareas es independiente de la asignación de tareas y concentradores a los nodos de procesamiento en el sistema de destino.

Historia

El propósito inicial para desarrollar OpenComRTOS fue proporcionar un entorno de ejecución de software que admitiera una metodología de ingeniería de sistemas coherente y unificada basada en Entidades Interactuantes . Esto fue desarrollado originalmente por la Open License Society [1] desde 2005, y desde 2008 desarrollado y comercializado por Altreonic. [2] Un RTOS desarrollado anteriormente llamado Virtuoso [3] [4] [5] [6] [7] sirvió como guía. Virtuoso es un RTOS distribuido, desarrollado por Eonic Systems hasta que la tecnología se vendió a Wind River Systems en 2001. Su funcionalidad general de procesamiento paralelo transparente (llamado modelo de tiempo de ejecución de procesador único virtual ) fue una fuerza impulsora importante para volver a desarrollarlo de una mejor manera. [8] [9] OpenComRTOS es conceptualmente una cuarta generación de Virtuoso, aunque fue un desarrollo de sala limpia. El RTOS Virtuoso tuvo su origen en el pionero Inmos Transputer , una implementación de hardware parcial del álgebra de procesos secuenciales comunicantes (CSP) de CAR Hoare . Aplicaciones más desafiantes: [ cita requerida ]

  1. Sistema de exploración petrolera con 12.000 procesadores que incorporan microcontroladores, DSPs de punto fijo y punto flotante y un host Linux en una sola red.
  2. Sistema de sonar con 1.600 DSP de punto flotante.
  3. Misiones espaciales Rosetta y Giotto de la ESA.
  4. Conversión de una aplicación de 400.000 líneas que se ejecuta en un RTOS de estilo POSIX (Interfaz de sistema operativo portátil) a OpenComRTOS.

Enfoque de desarrollo formal

Para el desarrollo de OpenComRTOS se siguió un proceso de ingeniería sistemático pero iterativo. Una vez definidos los requisitos y las especificaciones, se desarrollaron modelos en la lógica temporal de acciones (TLA+) de Leslie Lamport y luego se verificaron con el verificador de modelos TLC correspondiente. Con base en estos modelos, se escribió el código y luego una tercera persona creó nuevos modelos en TLA+ para verificar que la implementación aún fuera isomórfica. El temporizador y la funcionalidad de tiempo de espera asociada para los servicios se verificaron con el verificador de modelos Uppaal . En 2011, Springer publicó el libro sobre el proyecto OpenComRTOS. [10]

OpenComRTOS Designer: entorno de desarrollo y herramientas

OpenComRTOS viene con muchas herramientas. Visual Designer es un entorno de modelado visual mediante el cual el usuario especifica gráficamente la topología de los nodos y la topología de las aplicaciones. A partir de estos diagramas, se genera un modelo de tiempo de ejecución específico de la aplicación. El código específico de la aplicación se proporciona en ANSI C para cada tarea. La ejecución en tiempo de ejecución y las interacciones entre procesadores se visualizan utilizando el Event Tracer . Un Inspector del sistema permite leer y modificar las estructuras de datos. Otros módulos son los módulos hostserver (estos permiten que cualquier tarea acceda a los servicios del nodo host) y una Máquina Virtual Segura para C. Esta última requiere alrededor de 3 KiBytes (10 KiBytes para el programa y los datos) y permite descargar dinámicamente código C compilado en binario en tiempo de ejecución.

Portabilidad

OpenComRTOS fue desarrollado para sistemas embebidos y está escrito en ANSI C portable , excepto el cambio de contexto y las interfaces ISR. OpenComRTOS ha sido portado a los siguientes destinos: Freescale PowerPC, Texas Instruments C66xx DSP, Melexis  [fr] MLX16, ARM Cortex M3/4, Xilinx MicroBlaze, LEON3, NXP CoolFlux DSP y a MS-Windows y Linux. Las últimas versiones permiten la integración transparente de nodos host y sirven también para sistemas de simulación y desarrollo cruzados. Como el núcleo RTOS es idéntico para nodos de uno o varios procesadores, para soportar un sistema de varios procesadores solo es necesario escribir un pequeño controlador de nivel de tarea que pueda enviar y recibir paquetes.

OpenComRTOS está disponible en versiones binarias, de código fuente y con licencias de tecnología abierta. Estas últimas proporcionan modelos formales, documentos de diseño, código fuente y conjuntos de pruebas.

Véase también

Referencias

  1. ^ "Sociedad de Licencia Abierta".
  2. ^ "www.altreonic.com | Del espacio profundo al mar profundo". www.altreonic.com . Consultado el 29 de abril de 2023 .
  3. ^ Verhulst, Eric (2003). "Más allá de la máquina de von Neumann: la comunicación como paradigma de diseño impulsor para MP-SOC desde el software hasta el hardware". En Jantsch, Axel; Tenhunen, Hannu (eds.). Redes en chip . Hingham, Massachusetts, Estados Unidos: Kluwer Academic Publishers. pp. 217–238. doi :10.1007/b105353. ISBN 978-1-4020-7392-2.S2CID 19233943  .
  4. ^ E. Verhulst. "Virtuoso: proporcionando conmutación de contexto de sub-microsegundos en dsps con un nanokernel dedicado". Conferencia internacional sobre aplicaciones y tecnología de procesamiento de señales , Santa Clara, septiembre de 1993.
  5. ^ E. Verhulst. "Más allá de la transputación: semántica totalmente distribuida en el modelo de programación de procesador único virtual de Virtuoso y su implementación en DSP paralelos disponibles comercialmente". En Proceedings of WoTUG-20: Parallel Programming and Java , 1997, páginas 77–86.
  6. ^ E. Verhulst. "Procesamiento no secuencial: cerrando la brecha semántica dejada por la arquitectura de von Neumann". En Signal Processing Systems SIPS'97 , páginas 35–49.
  7. ^ E. Verhulst. "La justificación de la semántica distribuida como una metodología de diseño de sistemas embebidos independiente de la topología y su implementación en el sistema operativo en tiempo real Virtuoso". Automatización del diseño para sistemas embebidos , 2002, 6:277–294. doi :10.1023/A:1014018820691.
  8. ^ E. Verhulst, G. de Jong. "OpenComRTOS: un RTOS embebido centrado en red ultrapequeño diseñado utilizando modelado formal". En Actas de la 13.ª conferencia internacional del SDL Forum sobre diseño de sistemas confiables, SDL'07 , páginas 258-271, Berlín, Heidelberg. Springer-Verlag.
  9. ^ Eric Verhulst, Gjalt de Jong, Vitaliy Mezhuyev. "Un caso industrial: dificultades y beneficios de aplicar métodos formales al desarrollo de un RTOS centrado en la red". En Cuellar, J., Maibaum, T. y Sere, K., editores, FM 2008: Formal Methods , volumen 5014 de Lecture Notes in Computer Science, páginas 411–418. Springer: Berlín, Heidelberg.
  10. ^ Desarrollo formal de un RTOS centrado en la red: Ingeniería de software para sistemas integrados confiables por Eric Verhulst, Raymond T. Boute, José Miguel Sampaio Faria y Bernhard HC Sputh ( ISBN 978-1-4419-9735-7 ) 1.ª edición, 2011, XVII, 219 pág. 54 ilustraciones 

Enlaces externos