Sistema operativo en tiempo real

Un sistema operativo en tiempo real o en tiempo real (abreviado como RTOS ) es un sistema operativo especializado para admitir aplicaciones en sistemas en tiempo real . Estos sistemas se utilizan típicamente en el campo industrial ( control de procesos , pilotaje de robots , transferencia de datos en telecomunicaciones ) o donde es necesario obtener una respuesta del sistema en un tiempo predeterminado.

Un sistema operativo en tiempo real no necesariamente tiene que ser rápido: el intervalo de tiempo en el que el sistema operativo/ aplicación debe reaccionar no es importante; lo importante es que responda en un tiempo máximo predeterminado. En otras palabras, el sistema debe ser predecible o más bien determinista , en el sentido de que en el sistema se puede conocer el tiempo real (en el mejor o peor de los casos, términos que provienen del inglés best case / worst case ) de un proceso dado. o procesamiento.

En la práctica, un sistema en tiempo real debe garantizar que un procesamiento (o tarea ) finaliza dentro de una determinada restricción de tiempo o fecha límite (llamada fecha límite en la jerga ). Para garantizar esto, se requiere que la programación de las operaciones sea factible . El concepto de factibilidad de programación es la base de la teoría de los sistemas de tiempo real y es lo que nos permite decir si un conjunto de tareas es ejecutable o no de acuerdo con las restricciones de tiempo dadas.

Tareas periódicas/aperiódicas y duras/blandas en tiempo real

Las tareas de un sistema en tiempo real pueden ser:

Las tareas periódicas son típicas de un sistema de control de tiempo discreto .

Cuando se trata de tareas de tipo periódico, también hablamos de período de ejecución, que significa el lapso de tiempo entre dos ejecuciones de una tarea periódica. Es común hacer coincidir la fecha límite con la inversa del período ya que este es el límite máximo de ejecución de una tarea.

Sin embargo, las tareas de un sistema en tiempo real pueden ser:

Básicamente esta distinción se traduce en la diferente cuantificación de los costes de una posible inexactitud temporal del sistema. Un ejemplo de una tarea suave en tiempo real puede ser un reproductor de DVD , en el que el incumplimiento de las restricciones da como resultado una degradación de la calidad de la película, pero no pone en peligro la continuación de la reproducción; mientras que una tarea difícil en tiempo real puede ser el controlador de temperatura del núcleo de una planta de energía nuclear, donde el incumplimiento de las limitaciones de tiempo puede causar un desastre evidente.

Características de un sistema de tiempo real

Un sistema de tiempo real debe tener las siguientes características:

Programación de sistemas en tiempo real

Los algoritmos de programación más utilizados para sistemas de tiempo real son esencialmente tres:

EDD tiene las siguientes características

EDF tiene las siguientes características:

RM solo puede ser utilizado para tareas periódicas, tiene las siguientes características:

La función U expresa la tasa de utilización del procesador, la función está limitada en la parte superior y es SupU = 1 , indicada con el factor de utilización mínima U_lub . Diremos que una función es ciertamente programable con Rate Monotonic si U <U_lub , en cambio es no programable si U> 1 . Si U_lub <U <1 no estamos seguros de la programabilidad. El algoritmo EDF en algunas circunstancias es mejor que RM porque garantiza la planificabilidad simplemente para U <1

Factores que socavan la previsibilidad

Los productos de las familias Windows y Unix no reúnen las características típicas de un sistema en tiempo real: por ejemplo, mientras se gestiona la ejecución de múltiples procesos con prelanzamiento , no es posible predecir de ninguna manera cuál será el tiempo de ejecución de un solo proceso. Además, el uso de discos duros para almacenamiento de datos, dispositivos USB u otros dispositivos que introducen altas latencias de ejecución por parte de la CPU , hace imposible establecer con certeza cuánto tiempo se tardará en encontrar la información útil para la correcta ejecución del código.

Hay varios factores que hacen que el sistema operativo reaccione de forma impredecible . Entre ellos, los principales son los siguientes:

Elección del sistema operativo en tiempo real

Entre los RTOS comerciales encontramos compatibles con POSIX (por ejemplo , LynxOS, que es compatible con Unix ) y no compatibles con POSIX, como VxWorks (que admite parcialmente los estándares POSIX ). En lo que a sistemas Open Source se refiere, es posible utilizar Linux , con las debidas precauciones, o RTAI / Xenomai .

Problemas en tiempo real de Linux

Ejemplos de sistemas operativos RT

Algunos sistemas operativos capaces de trabajar en tiempo real en arquitecturas de hardware adecuadas son:

Código abierto :

Propietarios:

Enlaces externos