Logo Studenta
¡Este material tiene más páginas!

Vista previa del material en texto

Chimera”_Sistema Operativo en Tiempo Real
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 loscontadores 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.
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 realencajados; 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. 
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. 
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. 
Unainterfaz 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.
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 asegurarseque 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 decirque 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
ANEXOS
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úcleosen 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. InterprocessorCommunication 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 porcionesdistintas: 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
A. 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