Para definir "tiempo real suave", es más fácil compararlo con "tiempo real difícil". A continuación, veremos que el término "tiempo real firme" constituye un malentendido sobre "tiempo real suave".
Hablando de manera informal, la mayoría de las personas tienen implícitamente un modelo mental informal que considera la información o un evento como "en tiempo real"
• si, o en la medida en que, se les manifiesta con un retraso (latencia) que puede estar relacionado con su moneda percibida
• es decir, en un marco de tiempo en el que la información o el evento tenga un valor aceptablemente satisfactorio para ellos.
Existen numerosas definiciones ad hoc diferentes de "tiempo real difícil", pero en ese modelo mental, el tiempo real difícil está representado por el término "si". Específicamente, asumiendo que las acciones en tiempo real (como las tareas) tienen fechas límite de finalización, el valor aceptablemente satisfactorio del evento de que todas las tareas se completan se limita al caso especial de que todas las tareas cumplen sus fechas límite.
Los sistemas estrictos en tiempo real hacen suposiciones muy sólidas de que todo lo relacionado con la aplicación, el sistema y el entorno es estático y conocido a 'priori, por ejemplo, qué tareas, que son periódicas, sus tiempos de llegada, sus períodos, sus fechas límite, que ganaron No hay conflictos de recursos y, en general, la evolución temporal del sistema. En el sistema de control de vuelo de una aeronave o en el sistema de frenado de un automóvil y en muchos otros casos, esas suposiciones generalmente se pueden satisfacer para que se cumplan todos los plazos.
Este modelo mental es deliberada y muy útil lo suficientemente general como para abarcar tanto el tiempo real duro como el blando; el blando se adapta a la frase "en la medida en que". Por ejemplo, suponga que el evento de finalización de tareas tiene un valor subóptimo pero aceptable si
- no más del 10% de las tareas no cumplen con los plazos
- o ninguna tarea tiene más del 20% de retraso
- o la tardanza promedio de todas las tareas no es más del 15%
- o la tardanza máxima entre todas las tareas es menos del 10%
Todos estos son ejemplos comunes de casos de software en tiempo real en una gran cantidad de aplicaciones.
Considere la aplicación de una sola tarea de recoger a su hijo después de la escuela. Eso probablemente no tenga una fecha límite real, sino que hay algo de valor para usted y su hijo en función de cuándo se lleva a cabo ese evento. Demasiado temprano desperdicia recursos (como su tiempo) y demasiado tarde tiene algún valor negativo porque su hijo podría quedarse solo y potencialmente en peligro (o al menos molesto).
A diferencia del caso especial estático en tiempo real duro, el tiempo real en tiempo real solo hace las suposiciones mínimas necesarias específicas de la aplicación sobre las tareas y el sistema, y se esperan incertidumbres. Para recoger a su hijo, debe conducir hasta la escuela, y el tiempo para hacerlo es dinámico según el clima, las condiciones del tráfico, etc. en el peor de los casos, el tiempo de conducción), pero nuevamente esto está desperdiciando recursos (su tiempo y ocupando el vehículo familiar, posiblemente negando el uso por parte de otros miembros de la familia).
Ese ejemplo puede no parecer costoso en términos de recursos desperdiciados, pero considere otros ejemplos. Todos los sistemas de combate militares son suaves en tiempo real. Por ejemplo, considere realizar un ataque aéreo a un vehículo terrestre hostil utilizando un misil guiado con actualizaciones a medida que el objetivo maniobra. La máxima satisfacción por completar las tareas de actualización del curso se logra mediante un golpe destructivo directo sobre el objetivo. Pero un intento de sobreaprovisionar recursos para asegurarse de este resultado suele ser demasiado caro e incluso puede ser imposible. En este caso, es posible que esté menos satisfecho pero lo suficientemente satisfecho si el misil golpea lo suficientemente cerca del objetivo como para desactivarlo.
Obviamente, los escenarios de combate tienen muchas incertidumbres dinámicas posibles que deben ser acomodadas por la gestión de recursos. Los sistemas blandos en tiempo real también son muy comunes en muchos sistemas civiles, como la automatización industrial, aunque obviamente los militares son los más peligrosos y urgentes para lograr un valor aceptablemente satisfactorio.
La piedra angular de los sistemas en tiempo real es la "previsibilidad". El caso difícil en tiempo real solo está interesado en un caso especial de previsibilidad, es decir, que todas las tareas cumplirán sus plazos y ese evento logrará el máximo valor posible. Ese caso especial se llama "determinista".
Existe un espectro de previsibilidad. Determinista (determinismo) es un punto final (máxima previsibilidad) en el espectro de previsibilidad; el otro punto final es la mínima previsibilidad (máximo no determinismo). La métrica y los puntos finales del espectro deben interpretarse en términos de un modelo de previsibilidad elegido; todo entre esos dos puntos finales son grados de imprevisibilidad (= grados de no determinismo).
La mayoría de los sistemas en tiempo real (es decir, los blandos) tienen una predictibilidad no determinista, por ejemplo, de los tiempos de finalización de las tareas y, por lo tanto, los valores obtenidos de esos eventos.
En general (en teoría), la predictibilidad y, por tanto, un valor aceptablemente satisfactorio, se puede hacer tan cerca del punto final determinista como sea necesario, pero a un precio que puede ser físicamente imposible o excesivamente caro (como en combate o quizás incluso en recoger a su hijo de la escuela).
El tiempo real suave requiere una elección específica de la aplicación de un modelo de probabilidad (no el modelo frecuentista común) y, por lo tanto, un modelo de predictibilidad para razonar sobre latencias de eventos y valores resultantes.
Volviendo a la lista anterior de eventos que proporcionan un valor aceptable, ahora podemos agregar casos no deterministas, como
- la probabilidad de que ninguna tarea pierda su fecha límite en más de un 5% es superior a 0,87. (Tenga en cuenta el número de criterios de programación expresados allí).
En una aplicación de defensa antimisiles, dado que en combate la ofensiva siempre tiene ventaja sobre la defensa, ¿cuál de estos dos escenarios de computación en tiempo real preferiría?
Debido a que la destrucción perfecta de todos los misiles hostiles es muy improbable o imposible, asigne sus recursos defensivos para maximizar la probabilidad de que muchos de los misiles hostiles más amenazantes (por ejemplo, en función de sus objetivos) sean interceptados con éxito (la interceptación cercana cuenta porque puede mover el misil hostil fuera de curso);
quejarse de que este no es un problema de computación en tiempo real porque es dinámico en lugar de estático, y los conceptos y técnicas tradicionales en tiempo real no se aplican, y suena más difícil que el estático en tiempo real, por lo que no le interesa .
A pesar de los diversos malentendidos sobre el tiempo real suave en la comunidad informática en tiempo real, el tiempo real suave es muy general y poderoso, aunque potencialmente complejo en comparación con el tiempo real difícil. Los sistemas blandos en tiempo real, como se resumen aquí, tienen una larga historia de uso exitoso fuera de la comunidad informática en tiempo real .
Para responder directamente a la pregunta de OP:
Un sistema estricto en tiempo real puede proporcionar garantías deterministas, por lo general, que todas las tareas cumplirán con sus fechas límite, el tiempo de respuesta a las interrupciones o llamadas del sistema siempre será menor que x, etc., SI Y SOLO SI se hacen suposiciones muy sólidas y son correctas que todo lo que importa es estático y conocido a 'priori (en general, tales garantías para sistemas duros en tiempo real son un problema de investigación abierto, excepto en casos bastante simples)
Un sistema blando en tiempo real no ofrece garantías deterministas, está destinado a proporcionar la mejor puntualidad probabilística posible, especificada y cumplida analíticamente, y la previsibilidad de la puntualidad que son factibles en las circunstancias dinámicas actuales, de acuerdo con los criterios específicos de la aplicación.
Obviamente, el tiempo real difícil es un caso especial simple de tiempo real suave. Obviamente, las garantías no deterministas analíticas en tiempo real suaves pueden ser muy complejas de proporcionar, pero son obligatorias en los casos en tiempo real más comunes (incluidos los más peligrosos y críticos para la seguridad, como el combate), ya que la mayoría de los casos en tiempo real son dinámicos, no dinámicos. estático.
El "tiempo real firme" es un caso especial mal definido de "tiempo real suave". No es necesario utilizar este término si el término "tiempo real suave" se entiende y se utiliza correctamente.
En mi sitio web real-time.org tengo una discusión más detallada y mucho más precisa sobre tiempo real, tiempo real duro, tiempo real suave, predictibilidad, determinismo y temas relacionados.