Chimera

Sistemas Operativos. Computación. Sistema operativo tiempo real. Controladores. Funcionamiento. Metodología. Multitarea

  • Enviado por: Leoncito
  • Idioma: castellano
  • País: Panamá Panamá
  • 47 páginas
publicidad

Contenido

Introduccion

1.Sistema Operativo en Tiempo Real “Chimera”

2. Creador y lugar en donde se desarrollo

3.Características Del sistema operativo Chimera

4.Plataforma de Función de la Chimera

5. Soporte de Hardware

6. Metodología utilizada en el desarrollo de Chimera

Terminos Importantes

Conclusión

Referencias Bibliográficas

Anexos

Introducción

Antes de a hablar de chimera, hablaremos de los sistemas operativos en tiempo real.

Los sistemas operativos en tiempo real (RTOS) se encuentran por todas partes son tan útiles como sus primos lo sistemas operativos familiares OS de Windows, del Mac y Unix, los software de control y los componentes de sistemas que funcionan en Pc. Los RTOS trabajan detrás de las escenas de las aplicaciones informáticas y a los componentes de control dentro de los interruptores de la red, de los motores del automóvil, de los paginadores de los teléfonos móviles, de los instrumentos médicos, de la medida industrial y de equipo de control y otros usos.

Una cualidad dominante de un RTOS es la capacidad para aislar usos de modo que si un programa se trunca o actúa de otra manera ilegal, el RTOS puede congelar rápidamente el programa, iniciar una recuperación y proteger otros programas o al sistema operativo en sí mismo para contrarrestar las consecuencias de instrucciones errantes.

La misma salvaguarda, protege y contrarresta lo que son memorias apiladas los desbordamientos causados por cualquier programa.

RTOS viene en dos tipos: duro y suave. Si un acontecimiento de proceso crítico no sucede ni sucede rápidamente bastante, un RTOS duro cierra abajo de la acción y la guarda de afectar la confiabilidad o la disponibilidad del resto del sistema. Los usos suaves de RTOS son más venebolos ya que dejan ciertas acciones abiertas y las van cerrando poco a poco.

Como RTOS y las computadoras encajan perfectamente, se convierten en grapas en usos para los reveladores comerciales que se están creando, nueva alta disponibilidad RTOS. Estos productos incluyen un componente de software especial que publique alarmar, funcionan diagnóstico de los sistemas para ayudar a problemas de punta o cambian automáticamente a un sistema de reserva. La ayuda actual de RTOS de la alta disponibilidad de los fabricantes de computadora industriales de PCI para el hardware intercambio.

RTOS viene en una gran variedad. Los productos comerciales incluyen VxWorks y VxWorks AE, ambos de los sistemas inc. El último es un diseño de la alta disponibilidad con la ayuda distribuida de la mensajería y de la alta tolerancia. El RTOS deja a programadores segregar librerías compartidas, datos y software del sistema así como usos.

LynxOS es un RTOS duro que trabaja con Unix y Java. QNX funciona en Intel x86 CPUs con apenas un microkernel 10KB.

RTOS en academia incluye la chimera de la universidad de Carnegie Mellon, un multiprocesador, sistema en tiempo real de los trabajos múltiple diseñado para hacerla fácil para que los programadores configuren de nuevo y reutilicen código. La quimera es sistemas robóticos y de la automatización dirigidos. La universidad de RTOS de Maryland, llamada Maruti, apoya usos en tiempo real duros y suaves.

Por años, los usos RTOS-basados han estado en sistemas encajados, y han sido más recientemente por todas partes de equipo médico controlado por ordenador a los fabricantes del café. Los nuevos usos distribuyen lo que computan y están empujando los reveladores del sistema operativo en la investigación y el desarrollo de los estándares.

Los programas del gobierno tales como el comité de Quorum de la defensa de investigación avanzada de la agencia del proyecto, una iniciativa de tres años de publicaciones privadas están también en el trabajo sobre la gerencia de recurso, el establecimiento de una red, la gerencia de datos y tecnologías en tiempo real del middleware. "el comité está mirando programar adaptante a hacer distribuido, los sistemas de la cooperación capaces de hablar el uno al otro y de compartir correctamente recursos," en el instituto de la tecnología de dotación lógica de Carnegie Mellon. "la meta es tomar qué se alcanza en una escala pequeña [ por RTOS ] y traerlo a una escala más grande." Él dice a militares, especialmente la marina y la fuerza aérea, está altamente interesado en usos distribuidos, en tiempo real.

Los esfuerzos de Quorum se engranan hacia crear un marco técnico para computar en tiempo real distribuido para los usos militares y comerciales. El marco apoyaría interfaces estándares y los componentes interpretable. "estamos esperando encontrar una plataforma que pueda recibir todos los usos duros y suaves dentro de una sola arquitectura.

Idealmente, la plataforma emergería de un estándar público, él agrega, aunque él sostiene fuera de poca esperanza. los "estándares de hecho [ de una entidad comercial ] gobiernan.

1.Sistema Operativo en Tiempo Real “Chimera”

Chimera , es un sistema operativo en tiempo real de multiprocesadores de la generación siguiente (RTOS) diseñado especialmente para soportar el desarrollo del software dinámicamente reconfigurable para los sistemas robóticos y de la automatización.

La versión 3,0 y posteriores del software está ya siendo utilizadas por varias instituciones fuera de Carnegie Mellon, incluyendo universidades, el gobierno, y laboratorios de investigación industrial.

Chimera proporciona la mayoría de las características disponibles en sistemas operativos en tiempo real comerciales, y se ejecuta tan bien como: VxWorks, Os-9, VRTX y LynuxOS.

En algunos casos, tales como la comunicación entre procesos, el funcionamiento Chimera es una orden de la magnitud rápidas.

La fuerza principal de Chimera, sin embargo, radica en la multiplicidad de las características ofrecidas las cuales son necesarias para el rápido desarrollo de código reconfigurable y reutilizable, pero estos no está disponible en otros sistemas operativos en tiempo real.

Chimera es un sistema operativo basado en VMEbus el cual soporta procesadores de propósitos múltiples, generales y especiales.

Los procesadores de propósito general vienen en la forma de single-board-computers [individual-tablero electrónico-computadoras] (actualmente es soportada por la familia de procesadores MC680x0) lo que llamamos Unidad de Procesamiento en Tiempo Real (RTPUs).

Chimera tiene un núcleo en tiempo real completamente equipado el cual soporta programación estática y dinámica, detección y control de errores frecuentes, un sistema completo de utilidades de biblioteca, varios y diferentes multiprocesadores de comunicación y sincronización primitivos, y un ambiente completamente integrado del sitio de trabajo del host.

Los lenguajes de programación de C y de C++ son soportados, con el compilador de GNU CC que es utilizado para la compilación cruzada para los objetivos del hardware.

El núcleo en tiempo real de Chimera es multitareas, permitiendo correr múltiples tareas al mismo tiempo.

Por defecto, el núcleo soporta el programas de prioridad fijos (e.g. algoritmo monotónico de la tarifa) y los programas de prioridad dinámicos (incluyendo algoritmos de programas primero -plazo- temprano y los primero- máxima-urgencia).

Utiliza una separación de mecanismo/policía que permita que el usuario modifique fácilmente cualquier parte para requisitos particulares del núcleo o agregue un planificador nuevo.

El tiempo del interruptor del contexto es el 66 usec, el cual incluye la operación completa salvada y restaurada de ambos la CPU principal y los registros co-procesadores MC68882.El planificador dinámico toma 26 usec porque cambia la hora de la operación.

Los contadores de tiempo del hardware son controlados por el sistema operativo, permitiendo así que los diseñadores del software escriban programas con los apremios que miden el tiempo para cualquier número de tareas.

Este método le permite a cualquier número de tareas detenerse brevemente en una señal del tiempo, sin importar el número de los contadores de tiempo disponibles en hardware, y quita la necesidad del usuario de programar cualquier contador de tiempo.

Las tareas periódicas y aperiódicas todas se programan de la misma manera, y los tiempos de plazo y de ejecución se pueden especificar opcionalmente para el uso, con algoritmos de programación estática y dinámica.

Para pequeños retrasos, un “retraso” de rendimiento mide automáticamente el tiempo de velocidad del procesador, y realiza un bucle vacío para la duración del retraso, que se especifica en segundos.

El núcleo además soporta un alto rendimiento de semáforos locales ( 7 usec para llamar a un no- bloqueo a 20MHz MC68020). Compatible con UNIX las llamadas al sistema son usualmente implementadas en el espacio del usuario para reducir al mínimo los gastos indirectos del núcleo y mejorar el tiempo de respuesta de aplicaciones.

El lenguaje C es una interfase local, bus VME, y se proporcionan las interrupciones del buzón, que permiten el rápido desarrollo de aplicaciones de manejo de interrupciones.

El núcleo se configura automáticamente para utilizar los dispositivos incorporados del RTPU para proporcionar estos servicios, permitiendo que el mismo ejecutable binario funcione en varios y diferentes modelos de RTPU, siempre que utilicen la misma familia de procesadores.

Se proporciona un sistema extenso de bibliotecas para uso general, incluyendo las bibliotecas típicas de UNIX (e.g. strings, math, random, time, [cadenas, matemáticas, al azar, tiempo,] etc.), un estándar concurrente E/S (e.g. printf, fgets, etc. con la sincronización de multitrabajos), un paquete de matriz matemático (e.g. addition, inverse, gaussian elimination, determinant, [adición, lo contrario, eliminación gaussiana, determinantes,] etc.), una biblioteca de comandos intérpretes para desarrollar rápidamente interfaces de uso en líneas de comandos, servicios de configuración de archivos de lectura, y una variedad de otros servicios útiles.

Chimera tiene capacidades elaboradas para la detección y gestión de errores. Sus características más prominentes son los mecanismos de gestión de errores globales y de gestión de incumplimientos de plazos.

Con la gestión de error global, los errores dentro de los módulos del sistema o del usuario generan una señal del error, que alternadamente invoca al manejador del error previamente definido. Quita totalmente la necesidad de tener que comprobar los valores de vuelta del error, por ejemplo si (read(...) = = -1)entonces perror(...).

Por defecto se proporciona un manejador de error que envía un mensaje de error y aborta la tarea. El manejador de error predeterminado puede ser reemplazado por cualquier número de manejadores definidos por el usuario. Los manejadores pueden ser asignados a errores específicos, o a cualquier sistema de errores basados en el módulo o espacio donde ocurrió el error.

Las excepciones del procesador también generan señales del error, permitiendo que las excepciones del procesador y los errores del software se manejen con un solo mecanismo. El mecanismo puede también detectar varios problemas de la corrupción de la memoria, así ayudan en el rastreo de virus en el sistema en una primera fase.

Un modo de quitar virus causa los archivos exactos, módulos, y el número de la línea de código fuente donde la gestión de error fue invocada, tan bien como un rastro de cualquier llamado al manejador de error definido por el usuario, para ayudar a eliminar errores. Esta forma de gestión de error permite la separación del código de la gestión de error del código y del programa, así haciendo que el código sea mucho más fácil de convertir y mantener.

El manejo de los fallos de cumplimiento de plazo funciona de una manera similar a la gestión de error global, excepto que detecta errores de la sincronización, tales como plazos perdidos, el escaso tiempo disponible de la CPU, y el máximo tiempo estimado de la CPU para una tarea sobrepasada. Los manejadores de error del usuario pueden ser instalados para alterar la acción del defecto del sistema.

Si la gestión de error global no se permite, entonces las llamadas estándares del sistema (por ejemplo open() , read() , etc.) tienen la funcionalidad de sus contrapartes de UNIX; por ejemplo, return -1 on error, y error del sistema .

Chimera es un verdadero sistema operativo en tiempo real de multiprocesos, diferente a la mayoría de los RTOS comerciales, que son los sistemas operativos de un solo procesador que hacen replicas en CPUs múltiple y se comunican con cada réplica usando cierta forma de protocolo de red.

Los núcleos en tiempo real se comunican con los otros mediante low-overhead [gastos indirectos bajos], mensaje no bloqueando que pasa por el mecanismo que llamamos correo expreso.

Esta comunicación subyacente del sistema proporciona la base para muchos diversos mecanismos nivel usuario de la comunicación y de la sincronización del multiprocesador en tiempo real, incluyendo memoria global compartida distribuida dinámicamente, semáforos remotos, mensajes pasados en orden de prioridad, tablas de variables de estado global, control de tarea del subsistema del multiprocesador, llamadas remotas de procedimientos, integración del sitio de trabajo del host, eliminación de errores simbólicos remotos, comunicación externa del subsistema del triple-buffer, y el sistema de ficheros extendido.

Chimera proporciona muchas herramientas para el rápido desarrollo de sistemas de control basados en sensores dinámicamente reconfigurables, tales como el mecanismo del control de tareas del subsistema del multiprocesador, la tabla de variable de estado global, controladores de dispositivos reconfigurables, sensor/activo genérico e interfaces de propósitos especiales del procesador y un mecanismo de configuración de archivos de lectura.

El sistema operativo integra automáticamente los módulos reconfigurables que crean y inicializan tareas en el RTPUs apropiado, establecimiento de las trayectorias de comunicación entre módulos, manejando su tiempo y sincronización, capturando y direccionando las señales las cuales controlan el flujo de una aplicación, y proporcionando información en línea de un subsistema tal como el estado de cada tarea, medido contra frecuencia deseada, plazos perdidos, y de la ejecución y de la utilización de la CPU de cada tarea, a través del uso de una nueva herramienta built-into [construir-en] el núcleo el cual llamamos la descripción automática de la tarea.

Chimera proporciona un interfaz de red a Onika, de modo que los programadores puedan trabajar con código en tiempo real gráficamente combinando los iconos que representan los módulos en software reutilizable.

El controlador de eventos de aplicaciones de alto nivel y el software de reacción de bajo nivel pueden generar, modificar, eliminar errores, y ejecutar en esta manera.

Chimera está siendo utilizada ya por muchos sistemas en universidad, industria, y laboratorios del gobierno. Éstos incluyen la universidad de Carnegie Mellon, el laboratorio de propulsión de jet, el Instituto de Tecnología de California , la Universidad de Concordia, el Instituto de Tecnología de la fuerza aérea, y la Universidad de Alberta.

Chimera ha permitido que todos estos sistemas compartan software y el hardware, reduciendo así los costes de desarrollo y mejorando la flexibilidad de aplicaciones.

Chimera también ha demostrado ser un sitio de prueba excelente para los grupos de sistemas en tiempo real, porque cada parte del núcleo puede ser reemplazado fácilmente por el código del usuario.

2. Creador y lugar en donde se desarrollo

El sistema operativo chimera fue desarrollado por David B. Stewart y Pradeep K. Khosla en los Laboratorio Avanzado De los Manipulantes, El Instituto de Robótica, Universidad De Carnegie Mellon, Pittsburgh.

Chimera
El Dr. David B. Stewart

Profesor Asociado Adjunto

Departamento de ingeniería eléctrica y de computadoras de la Universidad de Maryland

Maestría : Componentes de software Reconfigurable para los sistemas en tiempo real encajados; Sistemas operativos en tiempo real, tecnología de dotación lógica, teoría de sistemas en tiempo real, microcontroladores, usos del control numérico, sistemas del transporte, equipo y programas de computación diseños y co-diseños, lenguajes de programación; Arquitecturas para los sistemas encajados.

Educación :
Ph.D., Ingeniería De la Universidad De Carnegie Mellon , Eléctrica Y De Computadora , 1994

M.S., ingeniería de la universidad de Carnegie Mellon , eléctrica y de computadora , 1989

B.Eng, Universidad De Concordia , Ingeniería De Computadora , 1988


Proyectos De Investigación :

  • Software miniatura para los sistemas encajados muy pequeños

  • Los equipo y programas de computación co-diseñan de microcontroladores y de sistemas operativos en tiempo real ( Chimera)

  • Lenguajes y arquitecturas de programación para los sistemas encajados

  • Software encajado para MEMS

  • Herramientas de puesta a punto automatizadas del análisis y para los sistemas en tiempo real encajados

  • Sistemas encajados en el transporte

  • El seguimiento de inventarios

3.Características Del sistema operativo Chimera.

Chimera proporciona la mayoría de las características disponibles en sistemas operativos en tiempo real comerciales, más la ayuda avanzada para el despliegue rápido de los sistemas de control basados en sensores y módulos reconfigurables y reutilizables del software.

  • ayuda avanzada para la creación de aplicaciones basados en los módulos en tiempo real reconfigurables y reutilizables del software

  • apoya los propósitos generales múltiples CPUs en una placa madre de VMEbus

  • Programación estática y dinámica

  • El planificador por defecto se puede reemplazar por códigos de encargo

  • Gestión y detección de errores globales

  • Bibliotecas estándares completamente equipadas (secuencias, matemáticas, tiempo)

  • Bibliotecas adicionales útiles para crear el software reconfigurable (marco del comando-interprete, utilidad de la configuración de archivo de lectura, funciones de la matriz)

  • Semáforos locales de alto rendimiento

  • Ambiente completamente integrado del sitio de trabajo del host.

  • Herramientas de desarrollo estándares de GNU

  • ayuda para los procesadores especiales del propósito (es decir DSPs, FPPs)

  • interfaz flexible para el acceso del dispositivo de I/O

4.Plataforma de Función de la Chimera.

Chimera funciona actualmente en las computadoras single boards de MC68020, de MC68030 y de MC68040 VMEbus (los únicos modelos apoyados actualmente,son el Ironics Iv-3220, Ironics Iv-3230 y el Ironics Iv-3207). El '020 y el '030 requieren el co-procesadores de punto flotante MC68881/2.

Chimera sí mismo no está disponible para el Anonymous FTP pues se ha convertido en un producto comercial puesto por K2T Pittsburgh-basados Onika Inc. está limitado firmemente a las características avanzadas en Chimera y por lo tanto no satisface actualmente para el uso en otras plataformas.

5.Soporte de hardware:

Lista de Soporte de Hardware de Chimera

Controladores RTPU (Tabla de Procesadores de Propósito General, en los cuales el núcleo de Chimera se ejecuta )

Modelo Procesador Descripción

--------------- --------------- --------------------------------------------

IV3201A MC68020 Ironics IV3201A

IV3204A MC68020 Ironics IV3204A

IV3220 MC68020 Ironics IV3220

IV3230 MC68030 Ironics IV3230

PME6833 MC68030 Radstone PME 68-33

IV3207 MC68040 Ironics IV3207

Controladores ADT (Bus adaptador para conexiones a el servidor de la Estación de Trabajo o al VMEbus.)

Modelo host esclavo controlador Descripción

--------- ------ ------ ------ -------------------------------------------

BIT3_412 VMEbus VMEbus hxm BIT3 Corp. Model 412

BIT3_413 VMEbus VMEbus hxm BIT3 Corp. Model 413

BIT3_466 Sbus VMEbus sxm BIT3 Corp. Model 416

PTSBS915 Sbus VMEbus pxm Performance Technologies, Model PT-SBS915

Controladores SPP (Procesadores de propósito general, el cual administra la ejecución de Chimera ,y opera como procesador esclavo en el sistema)

modelo controlador n° proceso tamaño(hex) Descripción

--------------- ------ ----- --------- ------------------------------------

MC3200 mcfpa 1 200000 Mercury 3200 FPU

SKYI860 bolt 1 400000 Skybolt i860 FPU

Controladores IOD (Dispositivos E/S)

modelo tipo controlador npuerto tamaño(hex) Descripción

---------- ---- ------ ------ -------- ------------------------------------

BIT3_412 MEM bit var var BIT3 Model 412

BIT3_413 MEM bit var var BIT3 Model 413

DT1401 ADC dtadc 3 10 Data Translation ADC/DAC

DT1401 DAC dtdac 2 8 Data Translation ADC/DAC *1

DVME601B ADC diadc 16 10000 Datel Intelligent ADC

IV1623 PIO ipio 6 20 Ironics PIO

IV1640 DAC idac 8 10000 Ironics DAC

IV1642 ADC iadc 16 80 Ironics ADC

IV1643 DAC mdac 16 20 Ironics ADC (same as MPV904)

IV1645S ADC iadc 16 80 Ironics ADC

IV3220 SIO isio 2 20 Ironics SIO, local to IV3220 RTPU

IV3230 SIO isio 2 20 Ironics SIO, local to IV3230 RTPU

MPV901 ADC iadc 16 80 Burr Brown/Pentland ADC (same as IV1642)

MPV904 DAC mdac 8 20 Burr Brown/Pentland ADC

MPV950S ADC iadc 16 80 Burr Brown/Pentland ADC(same as IV1645S)

MPV954 DAC dac 8 10000 Burr Brown/Pentland ADC (same as IV1640)

TRC005 RCB trpi 3 40 Trident Robotics Puma RCB

VMIC4100 DAC vdac 16 20 VMIC DAC

VMIC2510B PIO vpio 2,4,8s 10 VMIC PIO

XVME500/* ADC xadc 16,32h 400 XYCOM ADC

XVME590/* ADC xadc 16,32h 400 XYCOM ADC (same as XVME500/[123])

XVME505/* DAC xdac 4 100 XYCOM DAC

XVME595/* DAC xdac 4 100 XYCOM DAC (same as XVME505/[12])

XVME240 PIO xpiofts 4 400 XYCOM PIO for LORD FTS

[SIO=Serial I/O, ADC= Convertidor de Análogo-a-Digital Converter, DAC= Convertidor de Digital-a-Análogo

, PIO=Parallel I/O, RCB=Robot Control Board, MEM=Shared Memory Interface]

Controladores SAI (controladores para activaciones de sensores)

modelo Descripción

----- ------------------------------------------------------------

dim6 'Dimension 6' six-dof trackball; uses an SIO-type IOD driver

pumad Puma Driver, uses RCB-type IOD driver

lfts Lord Force Sensor, uses PIO-type IOD driver

pgrip Puma pneumatic gripper, uses RCB-type IOD driver

vis External Vision Subsystem, uses MEM-type IOD driver

6. Metodología utilizada en el desarrollo de Chimera.

La metodología utilizada en el desarrollo de Chimera es un nuevo paradigma de la tecnología de dotación lógica que trata el problema de convertir software en tiempo real dinámicamente reconfigurable y reutilizable.

La fundación de la metodología de Chimera es el modelo puerto-basado en objeto de un componente de software reutilizable. El modelo es obtenido aplicando el modelo de cómputo formal del puerto-autómata al diseño basado en objeto.

Chimera

La comunicación en tiempo real de la tabla del estado de variables globales se utiliza para integrar objetos basados en puerto, que elimina la necesidad de la escritura y código del pegamento el eliminar errores.

Chimera

El sistema operativo en tiempo real de Chimera proporciona las herramientas para apoyar los modelos del software definidos por la metodología de Chimera, para poder ejecutar el software en forma fiable en tiempo real se usan algoritmos de programas en tiempo real comunes.

Una interfaz utilizado del hypermedia se ha diseñado para permitir que los usuarios monten fácilmente los componentes de software en tiempo real se diseñan basados en la metodología de chimera.

El uso de la metodología puede dar lugar a una disminución significativa en el tiempo de desarrollo y el coste de usos en tiempo real.

Integración de objetos utilizando variables de estado:

Un conjunto de tareas está formado por el enlace de múltiples objetos juntos en un subsistema de ciclo abierto o de ciclo cerrado. Cada objeto en el subsistema se ejecuta como una tarea separada en uno de los procesos dentro de un ambiente de multiprocesamiento.

Un ejemplo de un subsistema muy simple de ciclo cerrado es el control de la articulación PID de un robot. Utiliza tres módulos: el generador de posición de la trayectoria de la articulación, el controlador de la posición de la articulación PID, y la interfase en modo torque del robot.

Chimera

La automatización de puertos del modelo computacional establece que cada tarea sea ejecutada autónomamente. Al inicio de cada ciclo, la tarea obtiene los datos más recientes por medio de sus puertos de entrada. Al final de cada ciclo, después de realizar los cómputos necesarios, la tarea coloca los nuevos datos en sus puertos de salida.

La tarea no es conciente de la fuente y el destino de los datos de entrada y salida respectivamente.

Es deseable la ejecución autónoma debido a que permite que una tarea sea ejecutada independientemente de otras tareas, y por ello no se obstruye debido a que otra tarea utiliza un recurso compartido.

Sin las condiciones para bloquearse, el análisis y la complejidad de la implementación de algoritmos de programación de tiempo real como lo son la primero urgencia máxima y la rate monotonic son minimizadas.

El modelo de automatización de puertos asume que los datos más recientes están siempre presentes en los puertos de entrada, lo cual implica que los puertos no son colas de mensajes.

Con las colas de mensajes, es posible que no hayan mensajes esperando, lo cual ocurre cuando una tarea que produce una salida sea más lenta que la tarea que requiere esos datos como entrada.

Por otro lado, si la tarea que produce la salida es rápida, entonces cabe la posibilidad de múltiples mensajes esperando en el puerto, y el próximo mensaje recibido no es el dato más reciente.

Los mensajes crean nuevos problemas si la salida debe ser repartida entre múltiples entradas. En estos casos, un mensaje debe ser replicado, esto convierte al tiempo para producir un dato de salida en una función del número de tareas externas. Esto contradice el modelo automatizado donde un objeto no está pendiente de su medio externo.

Las variables de estado proveen una alternativa a los mensajes. Un estado de subsistema puede ser implementada definiendo cada puerto como una variable de estado.

Escribiendo a un puerto de salida y luego se traduce en una actualización de la variable de estado, mientras lee desde un puerto de entrada traduce a la lectura de una variable de estado.

Este método garantiza que los datos más recientes estén siempre disponibles como una variable de estado. Por otra parte, esto introduce también un problema de integridad.

Debido a que una variable de estado es compartida, se requiere de sincronización adecuada para asegurar que solamente un conjunto completo de datos son leídos y escritos.

Una variable de estado puede ser un vector o otra estructura de datos compleja, de esta manera toda la transferencia debe ser realizada como una sección crítica.

Utilizar semáforos o tipos similares de sincronización viola el modelo de automatización de puertos debido a que crean dependencias entre tareas. Estas introducen condiciones de bloqueo al análisis de programación de tiempo real y crean la posibilidad de inversión de prioridades y abrazos mortales.

Para ambientes monoprocesadores, la sincronización debe ser obtenida al asegurar la CPU, asumiendo que el tamaño de la transferencia de una variable de estado es pequeña.

Algunos argumentan que asegurar la CPU puede llevar a posibles trabajos no culminados o inversión de prioridades. Esto puede ser cierto en el caso ideal donde la CPU no es controlado por un sistema operativo.

Sin embargo, considerando los aspectos prácticos de la computación de tiempo real, no es inusual que un micronúcleo de tiempo real asegure la CPU hasta por 100 microsegundos para poder realizar una llamada al sistema como es un cambio completo de contexto.

Si el tiempo total que una CPU es asegurada de forma que transfiera una variable de estado es menor que la aseguración del micronúcleo debido a funciones del sistema operativo, entonces no hay efecto adicional en la previsión del sistema. Solamente el tiempo de ejecución de esta tarea debe ser incrementado por el tiempo de transferencia, y debe ser contado para el análisis de la programación.

En muchos controles de aplicaciones basados en censores, el volumen de datos es pequeño. Por ejemplo, para el control PID, cada variable de estado requiere transferencias ndof, donde ndof es el número de grados de libertad para el robot. Un valor típico para ndof es menor de 10, y por consiguiente la aseguración más extensa para una variable de estado debería ser el tiempo para realizar 10 transferencias. Esto toma típicamente menos de 5 microsegundos en una CPU con un tiempo de cambio de contexto de 100 microsegundos, considerando que un cambio de contexto puede contener hasta 200 operaciones para guardar y recuperar registros y actualizar una tabla de control de procesos.

Una excepción notable en la cual el pequeño volumen de datos asumidos no es mantenido es por las imágenes. Las aplicaciones de visión pueden fácilmente requerir varios megabytes de datos por segundo. En nuestro modelo, dichas aplicaciones son implementadas como un subsistema separado utilizando un hardware especial para procesamiento de imágenes, y enlazada por medio de una interfase a los objetos basados en puertos utilizando uno de los puertos.

Para un subsistema de visión, la comunicación entre objetos configurable puede ser implementado utilizando altos volúmenes de corrientes de datos y tareas sincronizadas, en lugar de estados y tareas asíncronas.

Los sistemas síncronos son mucho más limitantes debido a que todas las tareas deben ejecutarse a la misma frecuencia y la reconfiguración dinámica de más de una tarea a la vez no es usualmente posible. Sin embargo, los sistemas síncronos tienen una ventaja para los sistemas de visión donde es deseada una tubería de software sincronizado. La salida de dicha tubería es una lista de características o puntos específicos de datos dentro de una imagen. Esta salida de bajo volumen puede ser enviada a un subsistema de control el cual utiliza la metodología Chimera para aplicaciones como visión activa.

Para ambientes multiprocesadores, hemos diseñado un mecanismo de tabla global de variables de estado para la comunicación entre objetos, debido a que al asegurar solamente una de las CPU no provee la ejecución atómica necesaria, y asegurar todas las CPU no es factible.

El mecanismo está basado en el uso combinado de la memoria compartida global y la memoria local para el intercambio de datos entre módulos. La tabla global de variables de estado es guardada en la memoria compartida. Las variables en esta tabla son una unión del puerto de entrada y las variables del puerto de salida de todos los módulos que pueden ser configurados dentro del sistema.

Las tareas correspondientes a cada módulo de control no pueden acceder esta tabla directamente. En lugar de eso, cada tarea tiene su propia copia local de la tabla, llamada tabla local de variables de estado. Solamente las variables usadas por la tarea son mantenidas actualizadas en la tabla local. Debido a que cada tarea tiene su propia copia de la tabla local, el acceso mutuamente exclusivo no es requerido. Por lo tanto, una tarea puede ejecutarse autónomamente debido a que ésta nunca tiene que asegurar la tabla local. La clave es entonces asegurarse que las tablas local y global sean actualizadas para contener siempre los datos más recientes, y que la tabla local no debe actualizarse mientras una tarea está utilizando la tabla.

Términos Importantes

Algoritmo:

Se trata de un conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada

Aplicación:

Grupo de programas utilizados conjuntamente para una tarea específica como contabilidad, planificación financiera, hojas de cálculo, tratamiento de textos, juegos, etc

Buffer:

Memoria intermedia; Porción reservada de la memoria en la que se almacenan temporalmente los datos. Los búfer compensan a menudo las diferencias en la velocidad de flujo existentes entre un dispositivo y otro.

Bus VME

Tipo de bus que se utiliza en la automatización de procesos y bancos de prueba.

Compatibilidad:

1) Capacidad de un ordenador de aceptar y procesar datos de la misma manera que otro ordenador sin modificar los datos ni el soporte utilizado para su transmisión. 2) Capacidad de un dispositivo para conectarse o comunicarse con otro sistema o componente.

Configuración:

Proceso de ajuste del ordenador y/o el software al entorno de aplicaciones.

Controlador (driver) :

Programa que generalmente forma parte del sistema operativo y que controla una pieza específica de hardware (a menudo un dispositivo periférico como una impresora o un ratón). 

Co-procesador:

Compañero del procesador. Chip con capacidad de cálculo matemático que complementa al procesador principal de la computadora.

Excepción:

Una excepción es un evento que ocurre durante la ejecución de un programa y detiene el flujo normal de la secuencia de instrucciones de ese programa; en otras palabras, una excepción es una condición anormal que surge en una secuencia de código durante su ejecución. Una gran cantidad de tipos de errores pueden causar excepciones.

Host:

(sistema central) Computadora que permite a los usuarios comunicarse con otros sistemas centrales de una red. Los usuarios se comunican utilizando programas de aplicación

Interfaz:

1) Componente de hardware y software de un sistema utilizado específicamente para conectar un sistema o dispositivo a otro. 2) Conectar un sistema o dispositivo a otro para el intercambio de información. 3) El punto de contacto entre el usuario, el ordenador y el programa, por ejemplo, el teclado o un menú.  

Multitarea:

El término multitarea se refiere a la capacidad del Sistema Operativo para correr mas de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar Sistema Operativo multitarea, el primero requiere de la cooperación entre el Sistema Operativo y los programas de aplicación.

Los programas son escritos de tal manera que periódicamente inspeccionan con el Sistema Operativo para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este método se le llama multitarea cooperativa y es el método utilizado por el Sistema Operativo de las computadoras de Machintosh y DOS corriendo Windows de Microsoft.

El segundo método es el llamada multitarea con asignación de prioridades. Con este esquema el Sistema Operativo mantiene una lista de procesos (programas) que están corriendo. Cuando se inicia cada proceso en la lista el Sistema Operativo le asigna una prioridad. En cualquier momento el Sistema Operativo puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el Sistema Operativo también mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente.

Lenguaje de Programación:

Los lenguajes de programación cierran el abismo entre las computadoras, que sólo trabajan con números binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeración. Mediante los programas se indica a la computadora qué tarea debe realizar y como efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje que el sistema pueda entender. En principio, la computadora sólo entiende las instrucciones en código máquina ,es decir, el especifico de la computadora . Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel

Protocolo:

Conjunto de reglas que establecen la temporización y el formato del intercambio de datos

Puerto:

Conexión eléctrica a través de la cual el ordenador envía y recibe datos procedentes de dispositivos u otros ordenadores

Semáforo:

Un semáforo es una estructura diseñada para sincronizar dos o más hilos o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.

El por qué no se pueden usar directamente otras estructuras mas clásicas, como por ejemplo usar una variable común para decidir si se puede o no acceder a un recurso, se debe a que estamos en un sistema multitarea: hacer esto implicaría realizar una espera activa (un bucle, comprobando constantemente si la variable está o no a 0, y así saber si podemos seguir ejecutando o no). Por otro lado, puede ocurrir algo mucho peor: supongamos que un proceso comprueba la variable, y ve que el recurso está libre, por lo que procedería a cambiar dicha variable de valor y seguir. Pues bien, si justo después de la comprobación pero antes de que cambie el valor se conmuta de tarea (puede pasar, pues el sistema operativo puede hacerlo en cualquier momento), y el nuevo proceso comprueba la variable, como todavía no se ha actualizado, creerá que el recurso está libre, e intentará tomarlo, haciendo que ambos programas fallen. Lo peor del caso es que se tratará de un error aleatorio: unas veces fallará (cuando se produzca cambio de tarea en ese punto) y otras no.

Para evitarlo, se idearon los semáforos. Un semáforo básico es una estructura formada por una posición de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para recordar el orden en que se hicieron las peticiones

Sistema Operativo:

Grupo de programas que controlan el funcionamiento básico de un ordenador. Las funciones del sistema operativo incluyen la interpretación de programas, la creación de ficheros de datos y el control de la transmisión y recepción (entrada/salida) de datos de la memoria y los dispositivos periféricos.

Tiempo real :

1)Suele usarse como dispositivo de control en una aplicación dedicada. Tiene restricciones temporales bien definidas, por lo que el procesamiento debe llevarse a cabo dentro de los límites definidos o el sistema fallará. 2) Rápida transmisión y proceso de datos orientados a eventos y transacciones a medida que se producen, en contraposición a almacenarse y retransmitirse o procesarse por lotes.

Sistema Operativo de MACINTOSH

La Macintosh es una máquina netamente gráfica. De hecho, no existe una interfaz de línea de comando equivalente para ésta. Su estrecha integración de Sistema Operativo, Interfaz Gráfica con el usuario (GUI) y área de trabajo la hacen la favorita de la gente que no quiere saber nada de interfaces de línea de comando.

La familia de microcomputadoras de Apple Macintosh y su sistema operativo define otra plataforma importante. Las PC de Macintosh, que se basan en la familia de microprocesadores de Motorola, usan la arquitectura de Bus de 32 bits. La plataforma para Macintosh incluye muchas capacidades sofisticadas que comprende la multitarea, una GUI, la memoria virtual y la capacidad para emular la plataforma MS-DOS.

Las PC de Macintosh también tiene la capacidad integrada de compartir archivos y comunicarse con o tras PC de Macintosh en una red.

Usec:

Medida en microsegundos del offset (proceso de impresión)

Conclusión

Al terminar este trabajo hemos podido llegar a algunas conclusiones muy importantes y al conocimientos de tecnologías dentro de los sistemas operativos que eran desconocidas como la de los sistemas operativos que eran desconocidos. Como la de los sistemas operativos en tiempo real aquí podemos decir que estos sistemas aunque no son nuevos realmente son de gran importancia en diversas áreas y que sus estudios, están logrando resultados impresionantes en todos los campos y que se han convertido en herramientas de gran ayuda.

El sistema operativo en tiempo real chimera es un sistema operativo en tiempo real de multiprocesador de nueva generación, que esta diseñado para apoyar el desarrollo del software dinámicamente reconfigurable para los sistemas robóticos y de la automatización. La chimera esta siendo utilizado ya por varias instituciones fuera de la universidad de Carnegie Mellon, incluyendo universidades, el gobierno y laboratorios de investigación industrial.

Los usos y sus módulos reconfigurables son datos en fuentes y formas binarias. La chimera ya es un sistema operativo licenciado sobre una base de pro instalación y lanzamiento libre solamente para instituciones calificadas ( es decir universidades o laboratorios de investigación ) y a las empresas comerciales.

No importa quien crea la plataforma que computa la distribución universal, en tiempo real RTOS chimera continuará estando entre los usuarios más importantes de la tecnología nunca ha oído hablar por sus características de gran utilidad.

Referencias Bibliográficas

Chimera Real_Time Operating System

http://www-2.cs.cmu.edu/~aml/chimera/chimera.html

Chimera, http://www.ri.cmu.edu/projects/project_140.html

Concepto de Semáforo, http://raster.cibermillennium.com/OS2/CURSO/SEMAFORO.HTM

Excepciones, http://www.lapsoft.com.ar/java/capitulo06.htm

Glosario básico de la Informática, http://multimedia.udp.cl/comun/tutores/dicinfor.htm

Índice de paquetes, http://www.rediris.es/si/ftp/ftp_index.es.html#Chimera

Real _Time Operating System, http://www.frc.ri.cmu.edu/robotics-faq/14.html

Sistemas Operativos, http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SOF.htm

Sistemas Operativos, http://alumni.ipt.pt/~deeold/so99x03/public_html/so.htm#Chimera

Sistema de bus VME, http://www.cenval.es/catschroff/EVMEbus.pdf

Temas, http://nayar.uan.mx/~iavalos/OS.htm

Time offset, http://hora.rediris.es/ntp/stats/stratum1-offsets.html

The Chimera II Real-Time Operating System

for Advanced Sensor-Based Control Applications

Extracto: Este papel describe el sistema operativo en tiempo real de la quimera II, que se ha desarrollado para los usos basados en sensores avanzados del control. Se ha diseñado como sistema operativo local, para ser utilizado conjuntamente con un sistema operativo global. Se ejecuta en unas o más solas computadoras del tablero en un sistema VMEbus-basado. Los sistemas de control basados en sensores avanzados son estáticamente y dinámicamente reconfigurable. Consecuentemente, requieren muchas características especiales, que no se encuentran actualmente en sistemas operativos en tiempo real comerciales. En este papel, presentamos varias ediciones del diseño para tales sistemas, y también presentamos las características que hemos desarrollado y puesto en ejecucio'n como parte de la quimera II. Estas características incluyen un núcleo en tiempo real con programar dinámico, la gestión de error global, señales del usuario, y dos niveles de los drivers de dispositivo; una colección realzada de mecanismos de la comunicación del interprocessor, incluyendo memoria compartida global, de hacer girar-cerraduras, de semáforos alejados, de tablas variables del estado que pasa, global del mensaje de prioridad, de servo control de tarea del multiprocesador, y de integración del sitio de trabajo del anfitrión; y varios apoyan utilidades, incluyendo un UNIX C y librer'ias matemáticas, una biblioteca de la matriz, una biblioteca del intérprete del comando, y una biblioteca del archivo de la configuración. La quimera II se está utilizando actualmente con una variedad de sistemas, incluyendo el brazo II, el sistema modular del manipulante de CMU Reconfigurable, el sistema de Troikabot para la asamblea rápida, y el manipulante Uno mismo-Mo'vil de la impulsión directa de CMU del espacio.

INTRODUCCIÓN

. Los usos basados en sensores avanzados del control, tales como robótica, el control de proceso, y los sistemas de fabricación inteligentes tienen varios diversos niveles jerárquicos del control, que caen típicamente en tres amplias categorías: servo niveles, niveles de supervisión, y niveles del planeamiento. Los servo niveles implican datos de lectura de los sensores, analizando los datos, y controlando los dispositivos electromecánicos, tales como robustezas y máquinas. La sincronización de estos niveles es crítica, e implica a menudo los procesos periódicos que se extienden a partir de 1 hertzio a 1000 hertzios. Los niveles de supervisión son acciones de un nivel más alto, tales como especificar una tarea, publicando comandos como giran el motor 3 o se mueven a la posición B, y seleccionar diversos modos del control basados en los datos recibidos de los sensores en el servo nivel. El tiempo en estos niveles es un factor, pero tan crítico como para los servo niveles. En niveles del planeamiento el tiempo no es generalmente un factor crítico. Los ejemplos de procesos a este nivel incluyen la generación de los registros de la contabilidad o del funcionamiento del sistema en tiempo real, simulando una tarea, y programando las nuevas tareas para que el sistema tome encendido. Para desarrollar usos basados en sensores del control, los trabajos múltiple, un multiprocessing, y el sistema operativo en tiempo real flexible (RTOS) es necesarios. Un RTOS se puede subdividir en varias partes, incluyendo el núcleo en tiempo real, la ayuda del multiprocesador, el sistema de ficheros, y el ambiente de programación. El núcleo en tiempo real proporciona a gerencia de tarea local, primitivos programar, el medir el tiempo, gerencia de la memoria, comunicación local, interrupción que dirige, gestión de error, y un interfaz a los dispositivos de hardware. La ayuda del multiprocesador incluye a la comunicación y a la sincronización del interprocessor, a interrupciones del telecontrol, al acceso a los procesadores especiales del propósito, y a gerencia de tarea distribuida. El sistema de ficheros proporciona el acceso al almacenaje secundario, tal como discos y cintas, y a las local-a'rea-redes. El ambiente de programación proporciona las herramientas para construir usos; incluye al redactor, al recopilador, al cargador, a la depuración, al ambiente del windowing, al interfaz gráfico, y a intérprete del comando (también llamado una cáscara). El nivel de la ayuda previo cada parte del sistema operativo (OS) varía grandemente entre RTOS.

En este papel, presentamos a quimera II el sistema operativo en tiempo real, que se ha diseñado especialmente para apoyar usos basados en sensores avanzados del control. La quimera II se diseña como OS local dentro de un trabajo del marco del OS de global/local, según lo demostrado en el cuadro 1. En tal marco, el OS global proporciona el ambiente de programación y el sistema de ficheros, mientras que el OS local proporciona el núcleo en tiempo real, la ayuda del multiprocesador, y un interfaz al OS global. Para muchos usos el OS global puede ser no en tiempo real, por ejemplo UNIX o Mach. Sin embargo, el uso de un OS global en tiempo real tal como OS de la alfa [ 7 ] y RT-Mach-Mach [ 30 ] puede agregar previsibilidad en tiempo real a los accesos del archivo, al establecimiento de una red, y a los interfaces utilizador gráficos. La mayoría de los RTOS comerciales, incluyendo el iRMX II [ 5 ], Os-9 [ 13 ], y pSOS+ [ 24 ], no utilizan el marco del OS de global/local, y por lo tanto proporcionan su propio ambiente de programación de encargo y sistema de ficheros. Los ambientes, incluyendo los redactores, los recopiladores, el sistema de ficheros, y las instalaciones de los gráficos son generalmente inferiores a sus contrapartes en el OS UNIX-basado. Además, puesto que mucho esfuerzo del desarrollo para estos RTOS entra el ambiente de programación, tienen núcleos en tiempo real inferiores con respecto al otro RTOS. Algunos RTOS comerciales, tales como VRTX [ 20 ] y VxWorks [ 32 ], utilizan el marco del OS de global/local. Sin embargo, con respecto a la quimera II, proporcionan la ayuda muy pequeña del multiprocesador, y su interfaz de comunicaciones al OS global se limita a los protocolos de establecimiento de una red, así haciendo la comunicación lenta e inflexible. Los RTOS comerciales proporcionan solamente características básicas del núcleo, tales como programar de prioridad estático y capacidades muy limitadas de la dirección de excepción, y la ayuda del multiprocesador es mínima o inexistente. Los esfuerzos anteriores de la investigación en desarrollar un RTOS para los sistemas de control basados en sensores incluyen Condor [ 18 ], el núcleo del resorte [ 25 ], el sabio [ 21 ], la quimera [ 23 ], y la armonía [ 3 ]. Se han concentrado generalmente solamente en las características seleccionadas para el núcleo en tiempo real, o fueron diseñados para un uso específico de la blanco. La quimera II diferencia de estos sistemas en que proporciona no solamente las necesidades básicas de un RTOS, pero también proporciona las características avanzadas requeridas para la puesta en práctica de los sistemas de control basados en sensores avanzados, que pueden estar dinámicamente y estáticamente reconfigurable.

II. EDICIONES del DISEÑO

avanzaron sistemas de control basados en sensores deben ser dinámicamente reconfigurable, uniforme para el más simple de usos. Considere el ejemplo de un manipulante robótico que se requiera mover un objeto que se conozca localización. Esta tarea se puede romper para arriba en tres fases separadas: tome el objeto; muévase a la nueva posición; coloque el objeto. Cuando el manipulante es cosecha encima del objeto, debe utilizar el control de la fuerza para entrar en contacto con el objeto, y el control del agarrador para tomar correctamente el objeto. Para mover el objeto un diverso regulador se requiere para la fase libre del movimiento. El proceso de la visión también se requiere posiblemente para seguir la localización de la blanco de object.s. Para colocar el objeto, el control de la fuerza y el control del agarrador se necesita otra vez. El sistema de módulos que se ejecutan y los sensores requeridos durante cada fase es diferente. Algunos de los módulos y de los sensores se comparten por las diversas fases, mientras que otros deben ser cambiados dinámicamente. Mientras que los usos llegan a ser más complejos, el número de configuraciones posibles también aumenta. Los sistemas de control basados en sensores avanzados se deben poner en ejecucio'n en el hardware de la abrir-arquitectura, para poder agregar incremental sensores nuevos y el proceso adicional al sistema para aumentar la inteligencia de system.s. Además, el hardware y el sistema de configuraciones del software pueden tener que ser cambiado para apoyar una diversa clase de usos. Así los sistemas de control basados en sensores avanzados deben también ser estáticamente reconfigurable. Varios diseñan las ediciones, discutidas detalladamente abajo, eran considerados en la quimera que se convierte II, un RTOS para los sistemas de control basados en sensores avanzados que son estáticamente y dinámicamente reconfigurable. A. El ambiente de programación y el sistema de ficheros la funcionalidad básica encontrada en todo el RTOS incluye el ambiente de programación, el sistema de ficheros, y el núcleo en tiempo real. El ambiente de programación se requiere desarrollar, eliminar errores, y mantener rápidamente de código. Los requisitos básicos para el ambiente son redactor, un recopilador del idioma de alto nivel, un linker, y un cargador. El sistema de ficheros se requiere para almacenar código y datos en almacenaje secundario, y para transferir electrónicamente la información a otros sistemas. Para proporcionar todos los ventajas de los ambientes de programación completamente equipados y sistemas de ficheros de los sitios de trabajo de today.s UNIX, adoptamos el marco del OS de global/local, y la quimera desarrollada II como una quimera local II del OS entonces requiere un OS global funcionar como el anfitrión, que hace todos de las características globales del ambiente de programación de OS.s y del sistema de ficheros disponibles para la quimera II. Dado tal marco, hemos desarrollado un interfaz de gran alcance entre el sitio de trabajo del anfitrión y el ambiente del tiempo real, según lo descrito en la sección III.B.

B. La configuración de hardware típica en tiempo real del hardware A de la arquitectura abierta para los usos basados en sensores avanzados del control puede consistir en procesadores de fines generales múltiples, posiblemente en los autobúses múltiples. El sistema puede contener unidades de proceso especiales, tales como aceleradores de la coma flotante, procesadores de la señal numérica, y sistemas de proceso de imagen. El sistema también incluirá interfaces a varios dispositivos sensoriales, tales como sensores de la fuerza, a cámaras fotográficas, a sensores táctiles, y a buscadores de la gama para recopilar datos sobre el ambiente, y una variedad de dispositivos del control tales como actuadores, interruptores, y amplificadores para controlar el equipo electromecánico. Hemos puesto la quimera en ejecucio'n II alrededor del VMEbus [ 16 ], puesto que es el estándar más popular del autobús. Sin embargo, mucho del diseño de la quimera II es independiente de la arquitectura de hardware de la blanco, y por lo tanto se puede utilizar con otras arquitecturas. El cuadro 2 demuestra una configuración de hardware típica. El proceso de los fines generales es proporcionado por las solas computadoras disponibles en el comercio del tablero, que llamamos las unidades de proceso en tiempo real (RTPUs). Hemos elegido apoyar a la familia de Motorola MC680x0 de procesadores de fines generales debido a su renombre y su traz uno por de las señales del hardware con las señales de VMEbus [ 15 ]. El diseño de la quimera II permite que el otro RTPUs procesador-basado, tal como la Intel 80x86 y familias de SPARC, también sea utilizado; sin embargo, no hemos virado actualmente ningún software hacia el lado de babor a esas plataformas. Cualesquiera dispositivo de I/O VMEbus-basado o procesador especial del propósito se pueden incorporar en la quimera II, usando la ayuda del driver de dispositivo del twolevel ofrecida por nuestro OS. C. El núcleo en tiempo real el núcleo en tiempo real debe incluir todas las características básicas encontradas en cualquier RTOS. Éstos incluyen la gerencia de tarea, la gerencia de la memoria, la memoria compartida local, semáforos locales, el acceso del contador de tiempo, y la independencia del hardware. La gerencia de tarea incluye acciones tales como crear, destruyendo, bloqueando, despertando, fijando prioridades, y programar de tareas concurrentes. La gerencia de la memoria es la asignación y la desasignación de la memoria física. No consideramos memoria virtual, porque no estamos enterados de ningún método hacer la paginación en tiempo real. La memoria compartida local permite tareas en el mismo RTPU de compartir memoria. Los semáforos locales proporcionan la sincronización básica para las tareas en el mismo RTPU. El acceso del contador de tiempo permite la ejecución de tareas de ser controlado por tiempo. La independencia del hardware es una capa virtual de la máquina, que permite que el software del usuario utilice el hardware sin tener que programar código del específico del hardware. El nivel de la independencia del hardware proporcionado por un OS varía. Hemos desarrollado un núcleo en tiempo real ampliado conveniente para los sistemas reconfigurable. Además de las funciones básicas del núcleo, nuestro núcleo también proporciona programar dinámico, dos niveles de los drivers de dispositivo, el control incorporado de contadores de tiempo, y la gestión de error global. Los detalles del núcleo de la quimera II se dan en la sección III.A.

D. Interprocessor Communication y para sincronización la mayoría del RTOS da muy pocos mecanismos la comunicación del interprocessor (IPC) y sincronización. Los mecanismos disponibles incluyen generalmente la ayuda para un atómico leer-modificar-escriben la instrucción para limitar el acceso a las secciones críticas, y una cierta forma de mensaje que pasa para la comunicación de alto nivel. El VMEbus por ofertas del defecto compartió memoria; sin embargo, la mayoría de los RTOS no hacen ninguna provisiones para asignar esa memoria, o para automáticamente realizar los cálculos de dirección requeridos para tener acceso a diversas partes de la memoria en el VMEbus. Consecuentemente, los programas que utilizan cualesquiera de estos mecanismos se convierten en límite a un solo procesador. El mismo código no puede de ejecutarse en un diverso procesador, sin la modificación de las direcciones de VMEbus, o en el caso del mensaje que pasa, modificando los nombres la fuente y destinación de los mensajes. En un sistema reconfigurable, los módulos deben ser diseñados tales que son independientes de la blanco RTPU; por lo tanto estos métodos no son satisfactorios. En segundo lugar, estos mecanismos no proporcionan todas las herramientas deseables para los usos del multiprocesador rápidamente que se convierten. En La Sección III.B. describimos el IPC y los mecanismos realzados de la sincronización desarrollados en la quimera II, incluyendo memoria compartida global, hacer girar-cerraduras, semáforos alejados, mensaje dado la prioridad que pasa, variables globales del estado, y control de tarea del multiprocesador. E. La previsibilidad la preocupación primaria en un sistema en tiempo real no es que es rápida, pero algo que es fiable. Un sistema rápido con comportamiento imprevisible puede causar daño serio. En teoría, el algoritmo monotónico de la tarifa [ 10 ] se utiliza para asegurar la ejecución fiable. Sin embargo, este algoritmo programar estático no es conveniente para los sistemas dinámicamente reconfigurable y no provee de la utilización de la CPU realizable los algoritmos programar dinámicos [ 11 ]. Hemos desarrollado el ma'ximo-urgencia-primer algoritmo para proporcionar un algoritmo programar dinámico fiable [ 26 ]. Se ha puesto en ejecucio'n este algoritmo pues el planificador del defecto para la ayuda de la quimera II. para el algoritmo monotónico de la tarifa, como se proporciona en la mayoría del RTOS, está también disponible con el planificador del defecto.

La mayoría de la teoría programar en tiempo real se concentra en asegurarse de que las tareas resuelven siempre sus plazos. Sin embargo, no se dice nada sobre qué sucede a las tareas que no pueden resolver plazos. Además, aunque una tarea puede resolver todos los plazos en teoría, las anormalidades en la puesta en práctica pueden causar la tarea de faltar su plazo en la práctica. En la quimera II hemos tratado esta edición diseñando un mecanismo de dirección de la falta del plazo, que permite que llamen un tratante de la excepción automáticamente cuando una tarea no puede resolver su plazo. La gestión de error posible incluye abortar la tarea y la preparación de ella para recomenzar el período próximo; enviando un mensaje a una cierta otra parte del sistema al tratante el error; realizando la emergencia que dirige, por ejemplo una parada agraciada del sistema o sonando un alarmar; estadística que mantiene sobre frecuencia de falta a la ayuda en templar el sistema; o en el caso de algoritmos iterativos, volviendo el valor aproximado actual sin importar la precisión. Los detalles de la II direcciones de la falta del planificador y del plazo de la quimera se incluyen en la sección III.A. Las faltas del plazo explican solamente uno de los muchos tipos de errores que puedan ocurrir en un sistema. Las faltas del plazo son únicas en que los errores son una función del tiempo. Otros errores que pueden ocurrir en un sistema incluyen faltas del hardware, insectos de software, datos inválidos, estados inválidos, y excepciones del procesador. Estos errores pueden ocurrir en cualquier momento, y se detectan a menudo dentro del código de user.s con el uso de la consistencia si entonces las declaraciones. El método más típico de ocuparse de estos errores es tener la rutina el detectar del error o a la manija él sí mismo, o volver un valor del error, tal como 1. desafortunadamente, en una arquitectura jerárquica del software, este método tiene dos problemas importantes. Primero, el código de la dirección de excepción se encaja dentro del código del uso, haciendo el código inflexible y difícil de mantener. En segundo lugar, si un error ocurre en el nivel más bajo de la arquitectura, y él es ser dirigida solamente por un módulo de un nivel más alto, después el error se debe pasar continuamente para arriba a través de los niveles intermedios del software. Este método es ambo incómodo a cifrar, y es también muy ineficaz, en que la época de introducir el código de la dirección de excepción requiere los gastos indirectos adicionales de propagar el error a través de niveles jerárquicos múltiples. En la quimera II hemos desarrollado un mecanismo global de la gestión de error, que permite el código de la dirección de excepción y el código principal del programa que se cifrarán independientemente. Los detalles se dan en la sección III.A.

F. Software modular y reutilizable para ahorrar el tiempo de desarrollo y hacer software más conservable, se acepta generalmente que los usos se deben diseñar en una manera modular, y los módulos del software deben ser reutilizables. La quimera II amplía esta ideología a la práctica, proporcionando las herramientas que permiten desarrollar rápidamente software modular y reutilizable. Primero, todos los mecanismos de la comunicación son procesador transparente, y por lo tanto los módulos se pueden desarrollar sin el conocimiento de la arquitectura de hardware final de la blanco. En segundo lugar, los drivers de dispositivo de dos niveles apoyados por Chimera II proporcionan un interfaz estándar no solamente a los dispositivos de I/O, según lo ofrecido por el otro RTOS, pero también a los sensores y a los actuadores. Tercero, el mecanismo del control de tarea del servo fuerza a programador desarrollar código como reconfigurable, por lo tanto dando por resultado los módulos reutilizables. Cada módulo puede entonces ejecutarse en cualquier RTPU en cualquier frecuencia, y todos los módulos se pueden controlar por una sola tarea. Los módulos forman una biblioteca de los módulos, cualesquiera de los cuales se pueden utilizar en sistemas más últimos sin la necesidad de recompiling cualquier parte del código. La intercomunicación entre los módulos se maneja automáticamente usando un mecanismo variable de la tabla del estado global de alto rendimiento. Servo la tabla variable del mecanismo del control de tarea y del estado global se describe en la sección III.B. Los detalles en desarrollar una biblioteca de módulos reutilizables pueden ser encontrados adentro [ 27 ]. G. Las bibliotecas la utilidad de un sistema operativo mienten no solamente en las características dadas, pero también en las bibliotecas de soporte, que excepto el tiempo de desarrollo del uso. Como la mayoría del otro RTOS, la quimera II proporciona el UNIX estándar C y librer'ias matemáticas. También proporciona una biblioteca concurrente del estándar I/O (stdio), que es conveniente para usar las instalaciones del stdio en un ambiente del multiprocesador. Además, se proporcionan varias otras bibliotecas, que no se encuentran generalmente en el otro OS. Éstos incluyen una librer'ia matemática de la matriz, una biblioteca del intérprete de la línea de comando, y una biblioteca de la ayuda del archivo de la configuración. Estas bibliotecas proporcionan las utilidades que son requeridas a menudo por usos basados en sensores avanzados del control. Más detalles en estas bibliotecas están en la sección III.C. III. La ARQUITECTURA del SOFTWARE el software de la quimera II se divide en dos porciones distintas: 1) cifra que los funcionamientos en el RTPUs, y 2) el código que funciona en el sitio de trabajo del anfitrión

El cuadro 3 demostraciones los datos flujo diagrama para el código que funciona en el RTPUs. En cada RTPU, las tareas del usuario se ejecutan concurrentemente con, comunicándose con uno a memoria compartida local y los semáforos locales. También tienen acceso directa a los dispositivos de I/O locales, y pueden comunicarse con otros procesadores usando cualesquiera de los mecanismos del IPC disponibles. Cada RTPU tiene una tarea del servidor que supervise constantemente el correo expreso. El correo expreso se utiliza para inicializar servicios del IPC y para proporcionar el acceso al sistema de ficheros extendido. El servidor traduce nombres simbólicos a indicadores, y realiza cualquier cálculo necesario para traducir direcciones dentro de varios espacios de dirección en el VMEbus. Una copia del núcleo de la quimera II se ejecuta en cada RTPU. El núcleo proporciona un ambiente de los trabajos múltiple en tiempo real para ejecutar las tareas concurrentemente. El sitio de trabajo del anfitrión es también una parte integral del ambiente de la quimera II. El cuadro 4 demuestra el diagrama del flujo de datos para el código que se ejecuta en el anfitrión. Tres categorías de procesos se ejecutan en el anfitrión: el proceso del servidor, los procesos de la consola, y los procesos del usuario. Todos los procesos se comunican vía memoria compartida local y las instalaciones del semáforo disponibles en el servidor global de host.s OS.The host.s proporcionan funcionalidad similar como el servidor en el RTPUs. Además, puede tener acceso al sistema de ficheros del anfitrión directamente, e incluye primitivos especiales para apoyar los procesos de la consola. El proceso de la consola proporciona el interfaz utilizador que sirve para descargar y para ejecutar programas sobre el RTPUs. El proceso de la consola también proporciona el stdin, el stdout, y los archivos del stderr para las tareas que se ejecutan en el RTPUs. Un solo proceso de la consola puede controlar todo el RTPUs dentro del sistema. Sin embargo, si RTPUs múltiple está utilizando el stdin, sólo uno de ellos puede tenerlo activo inmediatamente. Otras tareas que leen en bloque del stdin, y envían para un mensaje de la entrada del equipo teleescritor que espera al terminal de user.s, similar a la manera que UNIX maneja procesos de fondo. Si RTPUs múltiple requiere el stdin simultáneamente, después los casos múltiples del proceso de la consola se pueden crear, cada uno en una ventana separada en el sitio de trabajo del anfitrión. Los procesos del usuario son justos como cualquier otro funcionamiento de proceso de UNIX en el sitio de trabajo del anfitrión, excepto que una biblioteca adicional de la quimera II está ligada adentro, permitiendo que el proceso utilice el paquete de la quimera II IPC. Usando esta biblioteca, el sitio de trabajo del anfitrión aparece como RTPU al otro RTPUs entre, así haciendo la comunicación el sitio de trabajo del anfitrión y RTPUs transparente. Los procesos del anfitrión pueden leer así en y escribir en la memoria de cualquier RTPU, enviar o recibir mensajes, o sincronizarlos con semáforos alejados. Esta característica de gran alcance permite que los usuarios creen sus propios interfaces utilizador de encargo, que incluyen posiblemente gráficos o las instalaciones del windowing ofrecidas por el sitio de trabajo del anfitrión

  • El núcleo en tiempo real uno de las metas importantes del núcleo es proporcionar la funcionalidad requerida en el rendimiento más alto posible. En nuestro sistema, esto es alcanzada sacrificando características tradicionales del sistema operativo, tales como seguridad de la memoria virtual y del intertask. Nuestra base para el funcionamiento que mide es la cantidad de tiempo de la CPU durante la ejecución normal que se debe dedicar a las funciones de sistema operativo, tales como programar, conmutación de tarea, y gastos indirectos de la comunicación. Las decisiones principales del diseño que tomamos en desarrollar el núcleo de la quimera II se describen abajo. 1) tareas: Una tarea en la quimera II también se conoce como un hilo de rosca o proceso ligero en otros sistemas operativos. Un programa de usuario que se descarga en un RTPU consiste en un solo fichero ejecutable. El núcleo se provee como biblioteca de C y se liga en la imagen ejecutable. Cuando un programa se descarga a un RTPU y se ejecuta, una cierta inicialización del núcleo se realiza, siguiendo que la rutina del main() de user.s se freza como tarea. Cualquier otra tarea se puede entonces comenzar de main(). 2) Seguridad Inter-task: Típicamente, todas las tareas que funcionan en un RTPU dado (o el sistema de RTPUs) se diseñan para cooperar. Hemos sacrificado la protección inter-task, permitiendo una tarea de tener acceso al espacio de dirección de cualquier otra tarea. Esto elimina una cantidad grande de gastos indirectos incurrida en en la ejecución de llamadas del sistema o de sus equivalentes. En seguridad general, inter-task es deseable por dos razones: 1) para evitar que los usuarios múltiples o los procesos independientes infrinjan en otros procesos en el sistema; y 2) contener errores del software dentro de un módulo que critica para un control mejor de la gestión de error. Aunque la quimera II es trabajos múltiple y multiprocesador, se diseña para ser solo usuario. Dos sistemas de control totalmente separados si cada uno tiene su propia instalación de la quimera II. Esto es necesario si la ejecución fiable de cada sistema debe ser mantenida. Por lo tanto la primera razón de la seguridad inter-task de deseo no es aplicable a la quimera II. En cuanto a contener errores dentro de un módulo del software, la seguridad inter-task evita la corrupción de la memoria de otros módulos, y causa el módulo que critica a la interrupción. Estos tipos de errores ocurren típicamente debido a los insectos de software. El mecanismo global de la gestión de error tiene algunas instalaciones para automáticamente detectar insectos, tales como errores de la corrupción de la memoria o malas discusiones a las llamadas del sistema, y por lo tanto proporciona una otra método para manejar errores del software

  • 3) Gerencia De Tarea: La quimera II proporciona las características de la gerencia de tarea del núcleo típicas a todo el RTOS, incluyendo crear, suspender, el recomienzo, comprar con derecho preferente y programar. Además, la quimera II proporciona un diverso acercamiento a la sincronización dling han de la tarea. Mientras que otros RTOS requieren a usuario programar contadores de tiempo, el núcleo de la quimera II realiza todo el contador de tiempo que programa automáticamente. Se proporciona una rutina del pause(restart_time), que dice el núcleo detenerse brevemente la tarea hasta que el tiempo especificado del recomenzar. El núcleo programar las tareas usando los contadores de tiempo virtuales, basados todo en un solo contador de tiempo del hardware. Usando este método el número de tareas en un uso que requiere el uso de contadores de tiempo no es limitado por el número de los contadores de tiempo disponibles en el RTPU. Por lo tanto el usuario no tiene que manualmente realizar ningún hardware del contador de tiempo que multiplexa, como es necesario con la mayoría del otro RTOS cuando hay contadores de tiempo escasos del hardware. 4) Comunicación Inter-task Local: No hay relación de parent/child entre tareas. Cualquier tarea puede comunicarse o sincronizar con cualquier otra tarea a través de memoria compartida local, de semáforos locales, o de señales del usuario. Dentro de un solo fichero ejecutable, todas las variables globales se comparten automáticamente. Los semáforos locales proporcionan la sincronización de alta velocidad entre las tareas, y se pueden utilizar proporcionar la exclusión mutua durante las secciones críticas (semáforos binarios), o proporcionar la sincronización entre tareas (general o contando semáforos). Las señales del usuario proporcionan una otra método de la sincronización, permitiendo que la tarea de recepción sea interrumpida cuando llega la señal, en vez explícitamente de comprobar si la señal ha llegado según lo hecho con los semáforos locales. Cualesquiera de los mecanismos del IPC descritos en la sección III.B. se pueden también utilizar localmente. 5) Gerencia De la Memoria: El espacio de dirección total usado por todas las tareas en un sistema es limitado por la memoria física disponible en el RTPU. La quimera II no proporciona ninguna memoria virtual, como la gerencia de la memoria y los gastos indirectos del intercambio disminuye no sólo el funcionamiento de un sistema drástico, sino que también hace el sistema llegar a ser imprevisible, así violando una de las reglas importantes de sistemas en tiempo real. La quimera II proporciona su propia versión de la familia del malloc() de rutinas para asignar memoria física. 6) Dirección De la Interrupción: El núcleo de la quimera II proporciona las rutinas de interconexión para definir fácilmente e instalar a tratantes de interrupción del lenguaje-c para VMEbus IRQ interrumpe, LRQ local interrumpe, y un número usuario-definible de la caja interrumpe, incluso si el hardware apoya solamente una o dos interrupciones de la caja. Las utilidades también se dan para permitir y para inhabilitar interrupciones, y para trabar indefinidamente una tarea en la CPU para la emergencia atómica o crítica que maneja código. 7) Planificador De Tarea En tiempo real: La quimera II apoya programar con derecho preferente estático y dinámico de tareas en tiempo real. El planificador del defecto apoya el algoritmo estático monotónico el programar de prioridad de la tarifa (RM) [ 10][11 ], los earliestdeadline-primeros (FED) y mi'nimo-laxity-primeros (MLF) algoritmos programar dinámicos [ 11][33 ], y los ma'ximo-urgencia-primeros (MUF) mezclaron (estático y dinámico) el algoritmo programar [ 26 ]. Además, el planificador es diseñado como módulo reemplazable, permitiendo que los planificadores definidos por el usario eliminen fácilmente el planificador del defecto, apenas ligando el planificador nuevo al uso. La amplia gama de la ayuda para los algoritmos programar con el planificador del defecto permite que la quimera II sea utilizada en muchos usos, sin la restricción por el planificador del defecto, al igual que el caso con el RTOS comercial, que restringe el programador a usar un algoritmo estático el programar de prioridad. Por ejemplo, RM es generalmente el algoritmo de la opción al desarrollar un sistema de la solo-configuracio'n. FED y MLF se utilizan en sistemas dinámicamente que cambian cuando las sobrecargas transitorias del sistema no son posibles, o en sistemas estáticos cuando se requiere la utilización máxima de la CPU. MUF es un algoritmo que hemos diseñado especialmente para los sistemas dinámicamente reconfigurable, donde las tareas críticas se pueden garantizar para ejecutarse, uniforme durante las sobrecargas transitorias .

    8) Dirección De la Falta Del Plazo: Una novela y la característica de gran alcance en la quimera II es su mecanismo de dirección de la falta del plazo. Siempre que una tarea no pueda resolver su plazo, un tratante opcional de la falta es favor invitado de la tarea que falla. En tratante de la falta puede ser programado ejecutarse el el mismo o diversa prioridad que la tarea que falla. Tal funcionalidad es esencial en sistemas fiables. Las acciones especificadas en la sección cualquiera II.E. y otras acciones definidas por el usario puede ser puesto en ejecucio'n usando la dirección de la falta del plazo disponible con nuestro planificador de MUF. Estimar la época de ejecución de tareas es a menudo difícil. Del por ejemplo, la mayoría del hardware disponible en el comercio se engrana hacia funcionamiento medio de aumento vía el uso escondrijos y las tuberías. Tal hardware se utiliza a menudo para poner sistemas en ejecucio'n en tiempo real. Consecuentemente, el tiempo de ejecución no se puede predecir necesariamente exactamente. La subestimación de tiempos de ejecución del worstcase puede crear problemas serios, pues una tarea en el sistema crítico puede fallar. El uso de los tratantes de la falta del plazo se recomienda así para todas las tareas en un sistema. El planificador del defecto de la quimera II proporciona esta capacidad. 9) dirección del error y de excepción: Tres tipos de errores pueden ocurrir en un sistema de control basado en sensores avanzado: errores de hardware, errores del estado, y errores del software [ 2][4 ]. Un error de hardware es generado directamente por el hardware, tal como una excepción del procesador (e.g. error en el bus), o detectado por el software, al igual que generalmente el caso con los dispositivos de I/O. Estos errores son a veces solamente transitorios, o se pueden corregir por el software; otro mide el tiempo de la intervención humana se requiere a reajuste el hardware. Los errores del estado son software generado, generalmente después de una cierta forma de si entonces comparación. Estos errores son más abstractos que errores de hardware, e indican que se ha detectado un estado inválido del software. Por ejemplo, un error del estado ocurre si un comando de la recogida de la robusteza falla, porque el objeto no estaba allí o la operación del asimiento falló. El hardware sí mismo no genera un error; pero el estado que lleva a cabo el objeto después de la operación de la recogida no está correcto. Los errores del software son debido a los descuidos, a las limitaciones, o a los insectos del diseño del software. En general deben ser fijados puntualmente. Sin embargo, si ocurren mientras que el sistema se está ejecutando, la gestión de error apropiada se requiere para asegurar la ejecución fiable. En un sistema fiable, cada error se debe manejar en una manera sabida. En el mejor caso, llaman un tratante del error que corrige el error. Una solución intermedia es funcionar el sistema con funcionamiento degradado; esto es a menudo necesario con completamente Autonomous System. En el caso peor, el sistema debe ser parada. Prevenir daño el sistema y el ambiente, la parada normal del sistema debe ser agraciada, tales que los actuadores móviles vienen lentamente a un alto, y toda la energía se da vuelta apagado a después de que el actuador venga a un alto. Una de las características más de gran alcance de la quimera II es el mecanismo global de la gestión de error. Permite que los programas de usuario sean desarrollados sin tener que siempre explícitamente comprobar el valor de vuelta de errores. En lugar, siempre que se detecte un error, el mecanismo de la gestión de error es invocado, generando una señal del error. Por el defecto, un mensaje de error detallado es impreso, y la tarea culpable se aborta. El mecanismo permite que los mensajes de error sean muy específicos, así ayudando en seguir abajo de errores en el sistema. Cuando se permite el modo del eliminar errores, el número del nombre de fichero y de la línea del código de fuente también se imprime. El programador puede eliminar al tratante del defecto, en un por-error-co'digo, un por-mo'dulo, o una base del por-alcance. Después de manejar el error, la acción del defecto de abortar la tarea se puede también eliminar, continuando en la línea después del error, o volviendo a un lugar previamente marcado en el programa. Cada tarea tiene su propio sistema de tratantes del error. El diseño de la gestión de error global permite la definición de programas y de tratantes del error que se mantendrán separados. En el código tradicional de UNIX C, la gestión de error está incorporada al código usando si las declaraciones comprobar los valores de vuelta de rutinas, según lo demostrado en la f

    if (count > 10 && !found)

    errInvoke(moduleptr,ENOTFOUND);

    El errInvoke() rutinario genera una señal del error, que es manejada por el tratante del error del defecto o por a userdefined a tratante del error. La discusión del moduleptr se obtiene durante la inicialización del módulo particular que contiene este código. La filosofía de diseño básica del mecanismo global de la gestión de error en la quimera II es similar a ésa encontrada en algunas idiomas, tales como Ada, AML/X [ 17 ], y C excepcional [ 2 ]. Sin embargo, haciéndole la parte del OS tiene varias ventajas importantes tales como independencia del lenguaje de programación, detección automática de los errores de la llamada y del núcleo del sistema, y la capacidad de detectar automáticamente las cosas tales que las malas discusiones al sistema llaman o corrupción de la memoria, que son generalmente un resultado de los errores del software. El mecanismo global de la gestión de error coexiste con la gestión de error estándar de UNIX. Si no se permite, después cualquier rutina que genere errores, tales como llamadas del sistema, vuelve un valor apropiado del error (e.g. 1 o FALTA DE INFORMACIÓN) y fija el errno variable global, al igual que constante con UNIX. Las excepciones del procesador, tales como error en el bus y dividir-por-cero, también generan señales del error. Sin embargo, cuando la gestión de error global es lisiada, los tratantes de la excepción del procesador del lenguaje-c pueden ser instalados para eliminar la acción del defecto de abortar la tarea. 10) dispositivos de I/O, sensores, y actuadores: El núcleo de la quimera II adopta un acercamiento de dos niveles a desarrollar y a usar drivers de dispositivo para aislar al usuario de los detalles del hardware especial. Los primeros conductores del nivel proporcionan un interfaz independiente del hardware a los dispositivos de I/O, tales como puertos seriales, a los puertos paralelos, a los convertidores de analógico a digital, a los convertidores de digital a analógico, y a los grabbers del marco. Apoya el abierto, cercano, leído, escribe, ioctl, y los conductores del mmap, como de costumbre en la mayoría del OS UNIX-basado. Estos conductores son generalmente mucho más simples escribir que sus contrapartes de UNIX porque la seguridad del intertask no es una preocupación. Los segundos drivers de dispositivo del nivel no se requieren, sino se recomiendan altamente. Proporcionan un interfaz independiente del hardware estándar a los sensores y a los actuadores que están conectados con el sistema vía los puertos de I/O. Este interfaz modular permite que los usos sean desarrollados sin el conocimiento anterior de los detalles de los sensores y de los actuadores, y permite los sensores y los actuadores que se convertirán independientemente, sin el conocimiento del uso de la blanco.

  • Correo Expreso De la Ayuda Del Multiprocesador 1): El mecanismo del correo expreso es un alto protocolo de comunicación de la velocidad que hemos desarrollado especialmente para la comunicación de la placa madre. Es el nivel más bajo de la comunicación usado por el software del nivel de sistema. Tiene tres funciones básicas: 1) proporciona una capa de la transparencia del procesador, de modo que el resto de los mecanismos del IPC sigan siendo procesador independiente; 2) dirige el I/O entre el sitio de trabajo del anfitrión y RTPUs; y 3) envía señales del sistema y la caja interrumpe entre RTPUs. Para mantener el IPC de arriba a un mínimo, la mayoría de los otros mecanismos del IPC utilizan solamente el correo expreso durante la inicialización. Después de que se haga un puente de comunicaciones, toda la comunicación subsecuente puentea esta capa, para quitar gastos indirectos innecesarios. User.s no puede enviar y recibir directamente mensajes del correo expreso; algo, los otros mecanismos del IPC deben ser utilizados. 2) Memoria Compartida Global: El VMEbus tiene varios diversos espacios de dirección, y cada procesador tratará los espacios diferentemente. Usando las características automáticas del address resolution del correo expreso, la memoria se puede asignar de cualquier RTPU en cualquier otra tarjeta de RTPU o de memoria, y puede ser compartida por tareas en todo el RTPUs. Todas las compensaciones del address resolution y de la dirección se realizan durante la inicialización del segmento compartido de la memoria, de modo que las transferencias entre la memoria local y compartida no tengan ningún gasto indirecto del sistema operativo. 3) Hacer girar-Cerraduras: las Hacer girar-cerraduras hacen uso atómico prueba-y-fijan las instrucciones (TAS) para proporcionar la exclusión mutua para los datos compartidos [ 14 ]. En general requieren la menos cantidad de gastos indirectos de cualquier mecanismo sincronizado del IPC. Sin embargo, utilizan la interrogación para obtener la cerradura, que puede perder tiempo significativo de la CPU. La época de la interrogación y un rato limitado para revisar antes de publicar un error de la temporización se pueden fijar por el usuario. 4) Semáforos Del Telecontrol: La mayoría de los sistemas operativos en tiempo real proporcionan solamente semáforos locales; La quimera II también proporciona los semáforos alejados que permiten tareas en procesadores múltiples de utilizar semáforos. Como las hacer girar-cerraduras, los semáforos alejados utilizan instrucciones del TAS de obtener una cerradura; sin embargo, desemejante de las hacer girar-cerraduras, una tarea bloqueará en vez de la interrogación para la cerradura. Cuando se lanza la cerradura, la tarea bloqueada será despertada automáticamente. Binario y contando se apoyan los semáforos alejados. Los semáforos alejados se pueden utilizar cualquiera para la exclusión mutua al tener acceso a un segmento compartido de la memoria o para sincronizar tareas en diverso RTPUs. 5) El Pasar Del Mensaje de prioridad: El pasar del mensaje de prioridad de la quimera II permite que los mensajes mecanografiados en sean enviados entre las tareas el mismo o diverso RTPUs. El mensaje que pasa aplicaciones el correo expreso de inicializar una coleta de mensaje

  • Variables los mensajes de la longitud entonces son enviados colocándolos en la coleta. La longitud de la coleta es usuario-definible. Los mensajes son recibidos recuperándolos de la coleta, sobre el pasado-en-primer-hacia fuera, o el alto-prioridad-primer una base del fifo. El enviar y la recepción de mensajes puentea el correo expreso, así eliminando gastos indirectos run-time innecesarios. 6) Mecanismo Variable De la Tabla Del Estado Global: Un mecanismo variable de la tabla del estado se ha desarrollado para permitir tareas del control en RTPUs múltiple de compartir la información del estado, y de poner al día la información del estado rápidamente y correctamente. Este mecanismo crea automáticamente una tabla global, y una copia local de la tabla para cada tarea que requiera el acceso a las variables del estado. Las tareas hacen uso siempre la copia local, con las actualizaciones periódicas (típicamente al principio y fin de cada ciclo periódico) de la tabla global. Este mecanismo permite el cálculo exacto del tiempo requerido de la anchura de banda y de la transferencia de VMEbus requerido al integrar las tareas en tiempo real múltiples del control [ 27 ]. 7) Servo Control De Tarea Del Multiprocesador: Conjuntamente con el mecanismo variable de la tabla del estado global, este mecanismo se diseña para apoyar la integración y el control automáticos de los servo módulos de control reconfigurable de tarea. Una tarea en el sistema puede tomar control sobre algo o todo el RTPUs en el sistema. La tarea puede entonces frezar nuevas tareas en cualquier RTPU, y controla la ejecución de las otras tareas a través de on., de off., de control., y de mecanismos simples del status.. La integración de los usos del multiprocesador llega a ser bastante simple. Configurar de nuevo un uso para utilizar diversos reguladores se puede realizar dinámicamente. Este mecanismo también hace las actualizaciones de las copias locales de las tablas variables del estado (descritas arriba) automáticas, así quitando esa responsabilidad del programador. 8) Sistema de ficheros Extendido: El sistema en tiempo real hace uso los sistemas de ficheros en el sitio de trabajo del anfitrión, en vez de requerir un sistema de ficheros separado de disco en el ambiente en tiempo real. Esto permite las tareas en tiempo real de leer y de escribir los mismos archivos que cualquier proceso en el sitio de trabajo del anfitrión. Un interfaz de la llamada del sistema de UNIX del estándar, usando el open(), el close(), el read(), el write(), el ioctl(), y las rutinas del lseek(), se utiliza para tener acceso al sistema de ficheros extendido. La biblioteca concurrente del estándar I/O se puede también utilizar para I/O. protegido All que las operaciones alejadas son totalmente transparentes al usuario. 9) Llamadas Del Procedimiento Del Anfitrión: Las tareas que funcionan en el ambiente en tiempo real pueden accionar la ejecución de rutinas en el sitio de trabajo del anfitrión usando llamadas del procedimiento del anfitrión. En tales casos, la ejecución de las rutinas se realiza en el anfitrión, pero aparece al usuario a que está ejecutando en el ambiente en tiempo real. Por lo tanto, un programa interactivo que funciona en un RTPU puede llamar un redactor (tal como VI o emacs), y permite que el usuario corrija la información. Una vez las salidas de usuario, ejecución de la tarea en el RTPU entonces continúan. Las llamadas del procedimiento del anfitrión proporcionadas incluyen el directorio actual que cambia, consiguiendo una variable de entorno, y ejecutando cualquier programa independiente, tal como ls, VI, y grep. 10) Recibe La Integración Del Sitio de trabajo: El sitio de trabajo del anfitrión se integra completamente en el ambiente en tiempo real; aparece a todo el RTPUs como apenas otro RTPU. Consecuentemente, los procesos en el sitio de trabajo del anfitrión pueden hacer uso la memoria compartida global, los semáforos alejados, o el mensaje dado la prioridad que pasa para comunicarse rápidamente con tareas en el ambiente en tiempo real. Por ejemplo, un proceso del anfitrión puede exhibir gráficamente datos sobre el sitio de trabajo. Los datos se están recogiendo en tiempo real, y se están almacenando en un segmento compartido de la memoria en uno del RTPUs. El proceso del anfitrión puede entonces leer periódicamente esa localización, y pone al día la representación gráfica. Para puentear la carencia de medir el tiempo en el sitio de trabajo del anfitrión, la tarea en el ambiente en tiempo real puede utilizar los semáforos alejados binarios para señalar periódicamente el proceso del anfitrión, usando los contadores de tiempo en tiempo real más exactos, en vez de los contadores de tiempo menos exactos de UNIX

    11) Procesadores Especiales Del Propósito: Los procesadores especiales del propósito se agregan generalmente a los sistemas en tiempo real para aumentar el funcionamiento para los cómputos especializados. Los ejemplos de los procesadores especiales del propósito son aceleradores de la coma flotante, procesadores de imagen, procesadores de la señal numérica, máquinas del lisp, y transputers. Para simplificar la integración y el uso de los procesadores, hemos diseñado un hardware que el interfaz independiente que permite una tarea de descargar, copia datos, y llamamos subprogramas en los procesadores. Los procesadores se tratan como esclavos en el sistema que no ejecuten un núcleo. Sin embargo, el programar no comprado de antemano, por ejemplo primero-venir-primero-sirve o el corto-trabajo-primer se puede utilizar para programar llamadas de subprograma múltiples a estos procesadores. C. La quimera II de las bibliotecas proporciona varias bibliotecas que faciliten la programación de usos grandes: 1) UNIX C y librer'ias matemáticas: Estas bibliotecas proveen de compatibilidad el OS UNIX-basado y el otro RTOS. La biblioteca de C incluye las rutinas para las secuencias, la copia del bloque, el terraplén, y las operaciones de manipulación del movimiento, número al azar que genera, clasificando y rutina que busca, utilidad del time-of-day, y rutina de la asignación de memoria. La librer'ia matemática incluye las funciones transcendental y logarítmicas, así como otras funciones útiles de la coma flotante.

    2) biblioteca estándar concurrente de la entrada-salida (stdio): Esta biblioteca proporciona una versión del multiprocesador de la biblioteca del stdio de UNIX, que permite tareas múltiples en procesadores múltiples de compartir archivos, incluyendo la entrada estándar, salida estándar, y el error de estándar de la consola alejada. 3) librer'ia matemática de la matriz: Esta biblioteca proporcionó las rutinas optimizadas de la coma flotante para los vectores y las matrices de manipulación. Las funciones disponibles incluyen la adición y la multiplicación de la matriz, productos del punto y de la cruz, determinantes, la eliminación gaussian, y la copia y la secundario-copia de la matriz. 4) biblioteca del intérprete del comando: Esta biblioteca proporciona un sistema de las rutinas para rápidamente construir interfaces de línea de encargo de comando. El intérprete de encargo del comando tiene automáticamente buscar incorporado para el fósforo más cercano, ejecución de la cáscara, la ayuda archiva, y ayuda del archivo de la escritura. 5) biblioteca del archivo de la configuración: En un sistema reconfigurable, los archivos de la configuración se utilizan para definir la configuración actual. Esta biblioteca proporciona las utilidades para rápidamente leer un formato estandardizado, con todo general para los archivos de la configuración. Al usar esta biblioteca, la mayoría del repaso de las faltas es realizado automáticamente por las rutinas de la biblioteca, quitando esa necesidad del programador. Los detalles de cualesquiera de las características descritas en esta sección se pueden encontrar en la documentación del programa de la quimera II [ 28 ]. IV. La quimera II de la PUESTA EN PRÁCTICA se ha utilizado con varios diversos sistemas, en la universidad de Carnegie Mellon (CMU) y a otra parte, incluyendo en el laboratorio de la propulsión del jet, California Institute of Technology; el instituto de la fuerza aérea de la tecnología; Universidad De Estado De Wright; y la universidad de Alberta. En CMU, se está utilizando con el brazo II (DDArm II) [ 8 ], los sistemas modulares del manipulante de CMU Reconfigurable (RMMS) [ 22 ], el manipulante móvil del espacio del uno mismo [ 1 ], el sistema de Troikabot para la asamblea rápida [ 9][19 ], y el sistema de flexión de la impulsión directa de CMU de la hoja de acero de Amada. Cada uno de estos sistemas es muy diferente en naturaleza, pero puede ser controlado con el mismo sistema operativo bajo, que es prueba de la flexibilidad de la quimera II. Como ejemplo, un diagrama de bloque de los componentes del sistema del CMU DDArm II se demuestra en el cuadro 5. El sistema tiene un total de 12 procesadores en el ambiente en tiempo real: tres procesadores de fines generales MC680X0, 20 aceleradores máximos de la coma flotante del mercurio de Mflop, seis procesadores de la señal numérica TMS320, y un sistema de la visión de la tecnología de la proyección de imagen con dos procesadores de Weitek. El núcleo de la quimera II está funcionando en dos de esos procesadores: los procesadores de Ironics MC68020 y de Ironics MC68030. Los otros procesadores todos se tratan como procesadores especiales del propósito. Observe que el Heurikon MC68030 está ejecutando el núcleo del tiempo real Os-9. La única razón de no usar la quimera II en este procesador es que las bibliotecas comerciales para el sistema de la visión estaban solamente disponibles pues código de objeto Os-9. Con tal disposición, demostramos que la quimera II es capaz del trabajo conjuntamente con el otro RTOS, si se presenta la necesidad. El sistema tiene un total de 4 autobúses: el anfitrión VMEbus, el subsistema VMEbus del control, la visión VMEbus, y un multibus para los reguladores de la robusteza. Los adaptadores del autobús se utilizan para aislar el tráfico del autobús de cada subsistema. La quimera II maneja automáticamente las conversiones de dirección requeridas al cruzar los adaptadores. Varios sensores están conectados con el sistema, incluyendo un Trackball de las 6-grado-de-libertades, un sensor táctil, un sensor de force/torque, un sensor de la radiación, y una cámara fotográfica montada en el end-effector. Usando la quimera II, los sensores pueden ser agregados fácilmente o software quitado, y de cooperación ser escritos rápidamente. Consecuentemente, los programadores del uso pueden concentrarse en los detalles de un nivel más alto de la integración del sensor, en comparación con los detalles bajos y del hardware. A. El funcionamiento el éxito de un sistema operativo en tiempo real en desarrollar usos robóticos se basa en la facilidad de empleo y en su funcionamiento. El código de la escritura a funcionar bajo ambiente de la quimera II es tan simple como escribiendo un programa de la lengua de C al funcionamiento bajo UNIX. Varias características críticas del sistema operativo fueron medidas el tiempo para proporcionar una idea general del performa

    Una tarea se puede crear en 220 milisegundos, y destruir en 99 milisegundos. En general, estas operaciones se hacen durante la inicialización y la terminación, y no durante código crítico del tiempo. Consecuentemente, sacrificar el funcionamiento de estas rutinas a veces, en el favor de realizar cualquier cómputo de antemano, para el funcionamiento de operaciones run-time, tales como contexto

    Una tarea se puede crear en 220 milisegundos, y destruir en 99 milisegundos. En general, estas operaciones se hacen durante la inicialización y la terminación, y no durante código crítico del tiempo. Consecuentemente, cambiando, puede ser mejorado. Toma 20 milisegundos para poner al día la prioridad estática de una tarea, que incluye el cambio de cualquier coleta clasificada en prioridad. La época de poner al día la prioridad dinámica de una tarea se incluye en el tiempo del cambio de hora, descrito después. Uno del criterio importante del funcionamiento de un núcleo de los trabajos múltiple es el tiempo del interruptor del cambio de hora y del contexto. Sobre la expiración de un quántum del tiempo, una interrupción del contador de tiempo se genera, forzando tiempo-conducido cambia la hora. Si la tarea actualmente de funcionamiento tiene el laxity mínimo o es la prioridad más alta, sigue siendo de funcionamiento, y los resultados de la interrupción del contador de tiempo en ningún intercambio de la tarea. El tiempo programar en este caso es 28 milisegundos, dando por resultado una utilización de la CPU del pico de 97 por ciento con un quántum del tiempo de un milisegundo. En el otro extremo, un interruptor completo del contexto es necesario, que se ejecuta en 66 milisegundos, para un total de 94 milisegundos, así proporcionando la utilización mínima de la CPU de 91 por ciento para los trabajos de CPU-bound. El tiempo programar incluye todas las comprobaciones para plazos faltados, poniendo al día prioridades dinámicas, y seleccionando una nueva tarea si la tarea de la prioridad más alta cambia. Un interruptor completo del contexto implica el suspender de la tarea actual ahorrando su contexto entero, incluyendo los registros de FPU, y reasumir la nueva tarea restaurando su contexto entero. Observe que ahorrar y la restauración del FPU coloca las cuentas para la mitad excesiva del contexto del tiempo del interruptor solamente. Aunque es posible mejorar la época del interruptor del contexto para las tareas que no utilizan el FPU, era decidido que la mayoría de las tareas del control utilizan por lo menos algunas operaciones de la coma flotante. En vez de la adición por encima para no perder de vista cuando las operaciones de la coma flotante fueron utilizadas, el contexto completo de FPU se ahorra y se restaura siempre en cada interruptor del contexto. Un interruptor del cambio de hora y del contexto que se presenta como resultado del bloqueo corriente de la tarea debido a la contención del recurso no tiene que recalcular ninguna prioridades dinámica; toma 82 milisegundos. La utilización peor de la CPU del caso se puede aumentar sobre a 99 por ciento aumentando el quántum del tiempo a 10 milisegundos, que se pueden hacer para todos sino exigir las servo tareas llanas que deben funcionar en las frecuencias típicamente sobre 100Hz. Una tarea puede también ser bloqueada en la CPU, así inhabilitando el derecho preferente de compra. En este caso solamente 6 milisegundos se utilizan cada interrupción del contador de tiempo para poner al día el reloj del sistema. Los semáforos locales cada uno de P() (espera) y de V() (señal) se ejecutan en 7 milisegundos en que no hay el ocurrir del bloqueo o el despertar -para arriba. Una tarea de bloqueo agrega la época del interruptor del contexto de la contención del recurso antes de que la tarea siguiente comience a ejecutarse. La operación de V() toma 27 milisegundos adicional para despertar una tarea bloqueada. Inevitable, los semáforos alejados duran semáforos que locales. Una operación alejada del semáforo del semP() no bloqueando toma 27 milisegundos. Si la operación del semP() da lugar a bloquear la tarea corriente, después la época del interruptor del contexto de la contención del recurso también se necesita antes de que la tarea siguiente pueda ejecutarse. La operación alejada del wakeup del semáforo del semV() toma 26 milisegundos, si no hay tareas ser despertado. Despertar una tarea bloqueada que esté en el mismo RTPU toma 38 milisegundos adicional, mientras que despertar una tarea off-board toma otro 36 milisegundos para enviar una interrupción de la caja al RTPU apropiado para un total de 100 milisegundos. Hay un insecto de hardware en la puesta en práctica de la instrucción del TAS en el sitio de trabajo de sol, evitando que sea atómico sobre el VMEbus. Un workaround del TAS está incorporado a todos los mecanismos de la quimera II IPC. Así las operaciones alejadas del semáforo incluyen los 11 milisegundos de arriba, que puede ser ahorrado si un sitio de trabajo del anfitrión sin el insecto se utiliza, y por lo tanto el workaround del TAS no necesitado. Para el mensaje de prioridad del multiprocesador que pasa, toma 62 milisegundos para que una tarea ponga un mensaje 24-byte en una coleta que se almacene físicamente en memoria local, o 79 milisegundos para almacenar el mensaje en una coleta en memoria alejada. Estos tiempos incluyen los gastos indirectos de la llamada de subprograma de C. Toman 64 milisegundos para que una tarea recupere ese mensaje de una coleta 1000 hertzios debido a las cantidades significativas de sistema de arriba. Estos sistemas operativos, sin embargo, son candidatos excelentes a proporcionar instalaciones en tiempo real en el sitio de trabajo del anfitrión, permitiendo el sitio de trabajo del anfitrión y el RTPUs ejecutando la quimera II para comunicarse con uno a en tiempo real. Ha sido muy difícil obtener tiempos del funcionamiento de las mismas características con cada RTOS porque no teníamos su hardware y software requeridos disponibles. Además, las sincronizaciones publicadas para un RTOS no son necesariamente comparables a ésas en un diverso RTOS, debido a diferencias en la funcionalidad para las características similares. Cuál es necesario es el benchmarking estándar, independiente de cada RTOS para la comparación apropiada. Tal esfuerzo ha comenzado [ 12 ] pero todavía no se ha terminado. Sin embargo, basado en las pruebas patrones del funcionamiento disponibles en la literatura referida anterior, las observaciones siguientes pueden ser hechas. La época del interruptor del contexto para la quimera II es 66 msecs en 25 una CPU del megaciclo M68030, de la cual por lo menos la mitad del tiempo está para el ahorro y restaurar todo el contexto de M68882 FPU y se coloca. VxWorks demanda un rato del interruptor del contexto de 35 milisegundos, pero ése no incluye la época de ahorrar los registros de FPU. Os-9 anuncia 55 msecs, excepto el cual incluye posiblemente el contexto de FPU. En cuanto a sistemas operativos de la investigación, el SABIO toma 170 milisegundos, y no hay sincronizaciones disponibles para la armonía y Condor.. Los mensajes de prioridad de Interprocessor en la quimera II toman 79 msecs para enviar un mensaje 24-byte, y otro 81 milisegundos para recuperar que los mensajes, uniformes si el mensaje se está enviando al sitio de trabajo del anfitrión. El SABIO toma tanto como 920 msecs para un 4-byte RTPU--RTPU a mensaje. Toma tanto como 15 milisegundos cuando el anfitrión está implicado, con el protocolo del UDP. Condor toma por lo menos 200 m, para RTPU-a -RTPU, y tanto como 34 milisegundos en que el sitio de trabajo del anfitrión está implicado en la transferencia. No hay veces disponibles para los mensajes del interprocessor usando cualquiera del RTOS comercial, aunque esos sistemas que apoyen el uso TCP/IP del multiprocessing para los mensajes, que pone la sincronización de estos mensajes en la orden de milisegundos. VxWorks estima 10 milisegundos para una operación local no bloqueando del semáforo en 25 un procesador del megaciclo M68020. VRTX toma 24 milisegundos en un 25MHz MC68030. La quimera II realiza la misma operación en 7 milisegundos en 25 un procesador del megaciclo M68030. Algo del otro RTOS incluso no apoya semáforos locales, y solamente la quimera II apoya semáforos alejados. Las observaciones antedichas demuestran que la quimera II se realiza también, si no mejor, que el otro RTOS. Sin embargo, la fuerza de la quimera II miente en la multiplicidad de las características que tiene que son altamente deseables para los usos basados en sensores avanzados del control que se convierten, pero que no está disponible con el otro RTOS. Lo que sigue es una lista anotada de las características que hemos diseñado especialmente para los usos basados en sensores avanzados del control, y puesto en ejecucio'n en la quimera II: . El programar estático y dinámico combinado: el planificador de la quimera II es capaz de apoyar la tarifa monotónica, temprano-plazo-primer, mi'nimo-laxity-primer, ma'ximo-urgencia-primer del defecto, y userdefined algoritmos programar en tiempo real. Ayuda de dos niveles del driver de dispositivo: un primer nivel de los drivers de dispositivo proporciona el estándar UNIX-como interfaz a los dispositivos de I/O. El segundo nivel proporciona una capa independiente estandardizado, del hardware a los sensores y los actuadores. Interfaz especial del procesador del propósito: un interfaz estandardizado a los procesadores especiales del propósito hace fácil integrar y utilizar tales procesadores para realzar funcionamiento en tiempo real. Mecanismo global de la gestión de error: los programadores tienen que preocuparse no más de largo de comprobar los valores de vuelta de cualquier rutina que pueden generar un error. Todos los errores en el sistema, incluyendo los que puedan detectar insectos de software, producen una señal del error, que por defecto imprime un mensaje de error y aborta una tarea, pero se pueden eliminar con cualquier tratante definido por el usario del error. Correo expreso: un nuevo protocolo de comunicación basado en la memoria compartida disponible en los autobúses estándares de la abrir-arquitectura permite la alta comunicación del sistema de la velocidad entre RTP

    Mecanismo variable de la tabla del estado global: este mecanismo se ha desarrollado para permitir tareas del control en RTPUs múltiple de compartir la información del estado, y de poner al día la información del estado rápidamente y correctamente. El mecanismo da un plazo de la época máxima de la anchura de banda y de ejecución del autobús del sistema de ser apriori. computado. Servo mecanismo del control de tarea del multiprocesador: este mecanismo se diseña para apoyar la integración y el control automáticos de los servo módulos de control dinámicamente reconfigurable de tarea en un ambiente del multiprocesador. Integración del sitio de trabajo del anfitrión: ligando una biblioteca de la quimera II a procesos en el sitio de trabajo del anfitrión, esos procesos pueden comunicarse con las tareas que funcionan en el RTPUs, usando la memoria compartida global, los semáforos alejados, y pasar del mensaje de prioridad. El sitio de trabajo del anfitrión aparece al RTPUs como apenas otro RTPU.. Llamadas del procedimiento del anfitrión: las instalaciones que no están disponibles en el ambiente en tiempo real, pero están disponibles en el sitio de trabajo del anfitrión, se pueden alcanzar transparente por las tareas que funcionan en RTPUs usando las llamadas del procedimiento del anfitrión. Además de las características antedichas, la quimera II también contiene varias otras características útiles para los sistemas de control basados en sensores avanzados, que son similares a las características encontradas en el otro RTOS: . El pasar del mensaje de prioridad: la oferta de muchos RTOS esta característica, pero la puesta en práctica de la quimera II, basada en el correo expreso, permite que los mensajes variable-length del usuario sean transferidos a través de procesadores en 160 milisegundos. Sistema de ficheros extendido: todos los RTOS proporcionan una cierta forma de sistema de ficheros. En la quimera II, el sistema de ficheros extendido utiliza el correo expreso para proporcionar el alto acceso de la velocidad al sistema de ficheros del sitio de trabajo del anfitrión. Interfaz de la lengua de C a los tratantes de interrupción: la programación de los tratantes de interrupción es difícil en la mayoría del RTOS, porque el lenguaje ensamblador debe ser utilizado. La quimera II proporciona un interfaz permitiendo que los tratantes del lenguaje-c sean instalados sin la necesidad de cualquier código de interconexión de la asamblea. Señales del usuario: una tarea en un RTPU puede interrumpir otra tarea en el mismo RTPU enviando una señal del usuario. La dirección de señales es totalmente user-definable.. Hacer girar-cerraduras: la puesta en práctica de la quimera II de hacer girar-cerraduras da un plazo de la época de la interrogación y de un rato limitado de la recomprobación de ser especificado por el usuario. La quimera II también proporciona una biblioteca de la matriz, la biblioteca del intérprete del comando, una biblioteca de la lectura del archivo de la configuración, y una versión concurrente de la biblioteca estándar de I/O, además de la biblioteca estándar de UNIX C. Estas bibliotecas reducen el tiempo de desarrollo requerido para los usos proporcionando las rutinas para uso general ya-eliminadas errores para las funciones a menudo usadas.

    V. RESUMEN al poner sistemas de un control en ejecucio'n basados en sensores avanzados tiempo real, demasiado tiempo está pasado típicamente con los detalles del lowlevel para conseguir el hardware para trabajar, en comparación con los usos de un nivel más alto que permiten que el sistema haga algo útil. La quimera II es un sistema operativo en tiempo real que agrega una capa de la transparencia entre el usuario y el hardware proporcionando un núcleo en tiempo real de alto rendimiento y una variedad de características del IPC. La plataforma de hardware requerida para funcionar la quimera II consiste en el hardware comercialmente disponible, y permite que el hardware de encargo sea integrado fácilmente; y el diseño permite que sea utilizada con casi cualquier tipo de procesadores y los dispositivos VME-basados. Permite que el hardware radicalmente que diferencia sea programado usando un sistema común, así proporcionando un primer y necesario paso hacia la estandardización de sistemas reconfigurable que da lugar a una reducción del tiempo de desarrollo y de un aumento en productividad. La quimera II se está utilizando ya con varios diversos sistemas, en CMU y a otra parte.

    Chimera”_Sistema Operativo en Tiempo Real