Sistemas de tiempo real
Existen en nuestro entorno una gran variedad de sistemas creados por el ser humano, dentro de estos podemos mencionar los sistemas de tiempo real y los sistemas rápidos. Los sistemas de tiempo real tienen un papel importante en nuestra sociedad debido a que están sincronizados con el mundo físico lo que permite que satisfagan muchas necesidades cotidianas para el ser humano. La diferencia entre un sistema real y uno rápido es que el sistema rápido produce su salida sin considerar las restricciones de tiempo del ambiente con que interactúa, para este tipo de sistemas no es importante el tiempo en el cual los datos llegan al sistema o el tiempo en el cual la salida es producida, únicamente interesa la rapidez de respuesta.
Un STR es aquel sistema donde el tiempo en que se produce su salida es significante. Donde generalmente la entrada corresponde a algún instante del mundo físico y la salida tiene relación con ese mismo instante mas un tiempo adicional. En estos sistemas no solo es importante la calidad de respuesta, también es el tiempo en que ésta se obtiene, que debe ser tal que no afecte al proceso físico con que interactúa. Por lo tanto se puede decir que un STR no es lento, rápido o instantáneo, simplemente es apropiado al proceso. Cumple tres condiciones primordiales: 1) Contacto con El mundo físico, 2) emisión de respuestas correctas y 3) Recepción de respuestas dentro de intervalos de tiempo establecido.
Los sistemas de tiempo real realizan estas funciones de la siguiente manera, tienen contacto con el mundo físico a través de sensores que recopilan información del medio físico, actuadores que realizan el papel de emisores hacia el receptor el cual es la computadora.
Los STR pueden clasificarse de acuerdo al cumplimiento de las restricciones de tiempo impuestas por el mundo físico, en: críticos, no críticos e inflexibles.
Los sistemas críticos es absolutamente imperativo que las respuestas ocurran estrictamente dentro los periodos de tiempo especificados, a riesgo de causar un desastre; en los sistemas no críticos sus requerimientos temporales son importantes, pero funcionan correctamente si de manera ocasional alguna restricción se pierde: el sistema es degradado pero no se destruye por el hecho de fracasar en el tiempo de entrega de información; y por ultimo tenemos el sistema inflexible el cual es un tipo de sistema no critico, pero su diferencia consiste que en caso de no respetar las restricciones de tiempo no sirve de nada el servicio que prestan.
Los sistemas de tiempo real deben de tener ciertas cualidades que hacen su esencia:
a) Puntualidad (deben acatarse las restricciones de tiempo),
b) Soporte para carga pico (no deben colapsarse bajo condiciones de carga pico),
c) Predictivilidad (deben de ser predecibles ante cualquier contingencia),
d) Tolerancia a fallos (las fallas no deben ocasionar una caída del sistema),
e) Accesibles para mantenimiento (debe tener una estructura modular para posibles modificaciones),
f) Mapeo de números reales a enteros y viceversa,
g) Soporte de concurrencia (el STR debe de atender en forma concurrente (multitarea) las entradas),
h) Manejo de prioridades (deben de diferenciar la importancia de las actividades),
i) Interacción con interfase de hardware (a través de sensores y actuadores).
En un STR el concepto de concurrencia es importante, ya que dos actividades pueden llegar muy cercanas en el tiempo y ambas exigen ser atendidas en un plazo máximo, los conceptos de concurrencia y planificación adquieren mayor protagonismo que en los sistemas convencionales de tiempo compartido. Un planificador es un criterio predefinido que asigna procesos a los recursos en forma ordenada, de tal forma que cada tarea es ejecutada hasta completarse. Una tarea es un conjunto finito de actividades básicas que se ejecutan potencialmente en una computadora.
Los sistemas de tiempo real no pueden implementarse en una computadora personal con un sistema operativo comercial como el usado diariamente; es necesario un sistema operativo de tiempo real capaz de cumplir con las restricciones que le imponga el medio físico con la PC. Existe un conjunto de sistemas operativos como QNX, LYNX, RT-LINUX, etc. Capaces de dar el soporte adecuado debido a su capacidad de multitareas, sincronización, paso de mensajes y demás características de tiempo real.
Como conclusión podemos decir que un SISTEMA DE TIEMPO REAL esta formado por la integración entre un sistema computacional (que monitorea y/o controla un sistema) y el mundo físico (con el cual interactúa). Observamos que un STR interactúa con el mundo físico a través de sensores y actuadores. Los dispositivos que realizan la tarea de enlazar el mundo físico con el sistema computacional se les conoce como tarjetas de entrada-salida. Las comunicaciones entre la tarjeta y el sistema computacional se realizan mediante un estándar de conexión eléctrica (RS232, PCI, USB, puerto paralelo, etc.), que permite adquirir y enviar datos al mundo físico en formato analógico. El software que se encarga de manejar a la tarjeta de entrada-salida en el sistema computacional se le conoce como manejador de dispositivos (device driver),