¿Diferencias entre tiempo real duro, tiempo real suave y tiempo real firme?

101

He leído las definiciones de las diferentes nociones de tiempo real , y los ejemplos proporcionados para sistemas de tiempo real duro y blando tienen sentido para mí. Pero no existe una explicación o un ejemplo real de un sistema firme en tiempo real. Según el enlace de arriba:

Firme: los incumplimientos de plazos poco frecuentes son tolerables, pero pueden degradar la calidad del servicio del sistema. La utilidad de un resultado es cero después de su fecha límite.

¿Existe una clara distinción entre tiempo real firme y tiempo real duro o blando, y hay un buen ejemplo que ilustre esa distinción?

En los comentarios, Charles me pidió que envíe wikis de etiquetas para las nuevas etiquetas. El ejemplo de un "sistema firme en tiempo real" que proporcioné paraetiqueta era un sistema de servicio de leche. Si el sistema entrega leche después de su tiempo de expiración, entonces la leche se considera "no útil". Se puede tolerar comer cereal sin leche, pero la calidad de la experiencia se degrada.

Esta es solo la idea que me formé en la cabeza cuando leí inicialmente la definición. Estoy buscando un ejemplo mucho mejor, y quizás una mejor definición de tiempo real firme que mejore mi noción de la misma.

jxh
fuente
11
Básicamente, las definiciones no son realmente firmes.
Hot Licks
He restaurado las etiquetas originales. Creo que es útil poder colocar una etiqueta más específica en una pregunta con respecto al tiempo real duro o blando. Cambia la forma en que se responde la pregunta. Las etiquetas se eliminarán automáticamente de todos modos si no se usan después de 6 meses.
jxh
Si va a insistir en tres etiquetas nuevas para esta pregunta y solo para esta pregunta, al menos agregue wikis e intente encontrar otras preguntas a las que se puedan aplicar.
Charles

Respuestas:

114

El tiempo real difícil significa que debes cumplir absolutamente con todos los plazos. Muy pocos sistemas tienen este requisito. Algunos ejemplos son los sistemas nucleares, algunas aplicaciones médicas como marcapasos, un gran número de aplicaciones de defensa, aviónica, etc.

Los sistemas de tiempo real firmes / blandos pueden perder algunos plazos, pero eventualmente el rendimiento se degradará si no se cumplen demasiados. Un buen ejemplo es el sistema de sonido de su computadora. Si omite algunos bits, no es gran cosa, pero pierde demasiados y eventualmente degradará el sistema. Similares serían los sensores sísmicos. Si pierde algunos puntos de datos, no es gran cosa, pero debe capturar la mayoría de ellos para que los datos tengan sentido. Más importante aún, nadie va a morir si no funcionan correctamente.

La línea es borrosa, porque incluso un marcapasos puede fallar en una pequeña cantidad sin matar al paciente, pero esa es la esencia general.

Es como la diferencia entre caliente y tibio. No hay una división real, pero la reconoce cuando la siente.

Joel
fuente
2
Tu ejemplo "firme" me parece "suave".
jxh
Como se señaló, las líneas divisorias son bastante difusas. El único sistema de tiempo real suave en el que trabajé tenía tolerancias de unos segundos, así que ahí es donde trazo la línea.
Joel
1
Tenga en cuenta que es un continuo. Prácticamente todos los sistemas informáticos funcionan en "tiempo real" en una escala de tiempo. El sistema de facturación de una empresa debe sacar las facturas con la suficiente rapidez para mantener el flujo de efectivo en la empresa o la empresa morirá, tan seguramente como un paciente morirá si un marcapasos falla unos pocos cientos de milisegundos.
Hot Licks
Entiendo que los plazos no cumplidos pueden ser tolerables para algunos sistemas, pero esa es mi comprensión de un sistema flexible en tiempo real. Estoy buscando un ejemplo práctico de los criterios: la utilidad de un resultado es cero después de su fecha límite. Supongo que para su ejemplo de sonido, si el sonido está sincronizado con una transmisión de video, ¿algunos paquetes de audio que lleguen tarde no tendrán ninguna utilidad? Pero hay algunos sistemas de reproducción de películas que aceleran el audio para ponerse al día con el video.
jxh
Los requisitos de tiempo real están en el contexto de un sistema dado, no inherentes al problema. En el ejemplo que da, todavía hay daños en el sonido (se acelera) y una discrepancia temporal en el sonido y el video.
Joel
112

Difícil en tiempo real

La definición estricta en tiempo real considera que cualquier fecha límite incumplida es una falla del sistema. Esta programación se utiliza ampliamente en sistemas de misión crítica donde el incumplimiento de las limitaciones de tiempo da como resultado la pérdida de vidas o propiedades.

Ejemplos:

  • El vuelo 447 de Air France se estrelló en el océano después de que un mal funcionamiento del sensor provocara una serie de errores del sistema. Los pilotos detuvieron la aeronave mientras respondían a lecturas de instrumentos obsoletas. Los 12 tripulantes y 216 pasajeros murieron.

  • La nave espacial Mars Pathfinder casi se pierde cuando una inversión de prioridad provocó el reinicio del sistema. Una tarea de mayor prioridad no se completó a tiempo debido a que fue bloqueada por una tarea de menor prioridad. El problema se corrigió y la nave espacial aterrizó con éxito.

  • Una impresora de inyección de tinta tiene un cabezal de impresión con software de control para depositar la cantidad correcta de tinta en una parte específica del papel. Si se incumple una fecha límite, el trabajo de impresión se arruina.


Firme en tiempo real

La firme definición en tiempo real permite incumplir los plazos con poca frecuencia. En estas aplicaciones, el sistema puede sobrevivir a fallas de tareas siempre que estén adecuadamente espaciadas; sin embargo, el valor de finalización de la tarea cae a cero o se vuelve imposible.

Ejemplos:

  • Sistemas de fabricación con líneas de montaje de robots donde la falta de una fecha límite da como resultado un montaje incorrecto de una pieza. Siempre que las piezas dañadas no sean lo suficientemente frecuentes como para ser detectadas por el control de calidad y no sean demasiado costosas, la producción continúa.

  • Un decodificador de cable digital decodifica las marcas de tiempo para cuando los marcos deben aparecer en la pantalla. Dado que los marcos son sensibles al orden de tiempo, una fecha límite incumplida provoca fluctuaciones, lo que disminuye la calidad del servicio. Si el fotograma perdido más tarde está disponible, solo causará más fluctuación para mostrarlo, por lo que es inútil. El espectador aún puede disfrutar del programa si la inestabilidad no ocurre con demasiada frecuencia.


Tiempo real suave

La definición suave en tiempo real permite incumplir los plazos con frecuencia y, siempre que las tareas se ejecuten a tiempo, sus resultados seguirán teniendo valor. Las tareas completadas pueden tener un valor creciente hasta la fecha límite y un valor decreciente después de esta.

Ejemplos:

  • Las estaciones meteorológicas tienen muchos sensores para leer la temperatura, la humedad, la velocidad del viento, etc. Las lecturas deben tomarse y transmitirse a intervalos regulares, sin embargo, los sensores no están sincronizados. Aunque la lectura de un sensor puede ser anticipada o tardía en comparación con las otras, puede ser relevante siempre que esté lo suficientemente cerca.

  • Una consola de videojuegos ejecuta software para un motor de juegos. Hay muchos recursos que deben compartirse entre sus tareas. Al mismo tiempo, las tareas deben completarse de acuerdo con el horario para que el juego se juegue correctamente. Siempre que las tareas se realicen relativamente a tiempo, el juego será agradable y, si no, es posible que se retrase un poco.


Siewert: Sistemas y componentes integrados en tiempo real.
Liu & Layland: algoritmos de programación para multiprogramación en un entorno difícil en tiempo real.
Marchand & Silly-Chetto: Programación dinámica de tareas periódicas suaves y tareas periódicas con saltos.

John E Harriss
fuente
10
¡Qué lista tan agradable de ejemplos!
Erik Kaplun
Uno de los mejores ejemplos
Vishnu NK
En el caso del accidente del 447, ¿no se perdieron muchos plazos antes de que el avión se detuviera? Parece que todos los sistemas son firmes en ese sentido.
Josiah Yoder
3
muy buena lista, sin embargo, el ejemplo de la impresora de inyección de tinta no califica para tiempo real duro, en el mejor de los casos es firme y posiblemente solo suave.
Ab Irato
tysm para los ejemplos
himanshuxd
43

Después de leer la página de Wikipedia y otras páginas sobre informática en tiempo real. Hice las siguientes inferencias:

1> Para un sistema en tiempo real difícil , si el sistema no cumple con la fecha límite incluso una vez que se considera que ha fallado.

2> Para un sistema firme en tiempo real , incluso si el sistema no cumple con la fecha límite, posiblemente más de una vez (es decir, para múltiples solicitudes), no se considera que el sistema haya fallado. Además, las respuestas a las solicitudes (respuestas a una consulta, resultado de una tarea, etc.) no tienen valor una vez que ha pasado el plazo para esa solicitud en particular ( la utilidad de un resultado es cero después de su fecha límite ). Un ejemplo hipotético puede ser un sistema de pronóstico de tormentas (si se predice una tormenta antes de su llegada, entonces el sistema ha hecho su trabajo, la predicción después de que el evento ya haya sucedido o cuándo está sucediendo no tiene valor).

3> Para un sistema Soft en tiempo real , incluso si el sistema no cumple con la fecha límite, posiblemente más de una vez (es decir, para múltiples solicitudes), no se considera que el sistema haya fallado. Pero, en este caso los resultados de las solicitudes no tienen valor inútil para un resultado después de su fecha límite, no es cero , más bien se degrada a medida que pasa el tiempo después de la fecha límite. Ej .: Streaming de audio y video.

Aquí hay un enlace a un recurso que fue muy útil.

Meghendra
fuente
4
El sistema de pronóstico de tormentas no es un buen ejemplo, porque necesita establecer una fecha límite basada en el tiempo, y si ya sabía cuándo podría ocurrir una tormenta, el sistema de pronóstico de tormentas es algo redundante.
jxh
12

Es popular asociar una gran catástrofe con la definición de tiempo real difícil, pero esto no es relevante. Cualquier falla para cumplir con una restricción estricta en tiempo real simplemente significa que el sistema está roto. La gravedad del resultado cuando algo se etiqueta como "roto" no es importante para la definición.

Lo firme y lo blando simplemente no se declaran rotos automáticamente al no cumplir con un solo plazo.

Para ver un buen ejemplo de tiempo real difícil, de la página que vinculó:

Los primeros sistemas de videojuegos, como los gráficos vectoriales Atari 2600 y Cinematronics, tenían requisitos estrictos en tiempo real debido a la naturaleza de los gráficos y el hardware de sincronización.

Si algo en el bucle de generación de video no cumpliera con una sola fecha límite, toda la pantalla fallaría, lo que sería intolerable, incluso si fuera raro. Eso sería un sistema roto y lo llevarías de vuelta a la tienda para un reembolso. Entonces es difícil en tiempo real.

Obviamente, cualquier sistema puede estar sujeto a situaciones que no puede manejar, por lo que es necesario restringir la definición para que esté dentro de las condiciones operativas esperadas, teniendo en cuenta que en aplicaciones críticas para la seguridad, las personas deben planificar condiciones terribles ("el refrigerante se ha evaporado", " los frenos han fallado ", pero rara vez" ha estallado el sol ").

Y no olvidemos que a veces hay una condición operativa implícita de "mientras alguien está mirando". Si nadie te ve romper las reglas (o si lo hicieron pero se apaga el fuego antes de decírselo a nadie), y nadie puede probar que rompiste las reglas después del hecho, ¡entonces es lo mismo que si nunca rompiste las reglas!

sh1
fuente
4
If nobody sees you break the rules (or if they did but they die the fire before telling anyone), and nobody can prove that you broke the rules after the fact, then it's kind of the same as if you never broke the rules!... Ok, HAL. Ahora, ¿puedes abrir las puertas de la bahía de cápsulas?
Básico
11

La forma más sencilla de distinguir entre los diferentes tipos de sistemas en tiempo real es responder a la pregunta:

¿Una respuesta retrasada del sistema (después de la fecha límite) sigue siendo útil o no?

Entonces, dependiendo de la respuesta que obtenga para esta pregunta, su sistema podría incluirse como una de las siguientes categorías:

  1. Difícil : no, y las respuestas retrasadas se consideran una falla del sistema

Este es el caso cuando el incumplimiento de la fecha límite inutilizará el sistema. Por ejemplo, el sistema que controla el sistema de bolsas de aire del automóvil debe detectar el choque e inflar rápidamente la bolsa. Todo el proceso toma más o menos una vigésima quinta parte de un segundo. Así, si el sistema por ejemplo reacciona con 1 segundo de retraso las consecuencias podrían ser mortales y no será ningún beneficio tener la bolsa inflada una vez que el coche ya se ha estrellado.

  1. Firme : No, pero las respuestas demoradas no son necesarias debido a una falla del sistema

Este es el caso cuando el incumplimiento del plazo es tolerable pero afectará la calidad del servicio. Como ejemplo simple, considere un sistema de encriptación de video. Normalmente, la contraseña de cifrado se genera en el servidor (cabecera de vídeo) y se envía al decodificador del cliente. Este proceso debe sincronizarse para que normalmente el decodificador reciba la contraseña antes de comenzar a recibir los fotogramas de vídeo cifrados. En este caso, un retraso puede provocar fallos en el vídeo, ya que el decodificador no puede decodificar los fotogramas porque aún no ha recibido la contraseña. En este caso el servicio (película, un partido de fútbol interesante, etc) podría verse afectado por no cumplir con el plazo. Recibir la contraseña con retraso en este caso no es útil ya que los frames encriptados con la misma ya han causado los fallos.

  1. Suave : Sí, pero el servicio del sistema está degradado

A partir de la descripción de la wikipedia, la utilidad de un resultado se degrada después de su fecha límite . Eso significa que obtener una respuesta del sistema fuera de la fecha límite sigue siendo útil para el usuario final, pero su utilidad se degrada después de llegar a la fecha límite. Un ejemplo simple para este caso es un software que controla automáticamente la temperatura de una habitación (o un edificio). En este caso, si el sistema tiene algunos retrasos en la lectura de los sensores de temperatura, será un poco lento reaccionar ante cambios bruscos de temperatura. Sin embargo, al final acabará reaccionando al cambio y ajustando en consecuencia la temperatura para mantenerla constante por ejemplo. Entonces, en este caso, la reacción retardada es útil, pero degrada la calidad de servicio del sistema.

rkachach
fuente
6

Un tiempo real suave es más fácil de entender, en el que incluso si el resultado se obtiene después de la fecha límite, los resultados se siguen considerando válidos.

Ejemplo: navegador web : solicitamos cierta URL, se tarda algún tiempo en cargar la página. Si el sistema tarda más de lo esperado en proporcionarnos la página, la página obtenida no se considera inválida, solo decimos que el rendimiento del sistema no estuvo a la altura (¡el sistema dio un rendimiento bajo!).

En el sistema de tiempo real duro , si el resultado se obtiene después de la fecha límite, se considera que el sistema ha fallado por completo.

Ejemplo: en el caso de que un robot realice algún trabajo como el trazado de líneas, etc. Si se presenta un obstáculo en su camino y el robot no procesa esta información dentro de un plazo programado (¡casi instantáneo!), Se dice que el robot ha fallado. en su tarea (¡el sistema de robot también puede quedar completamente destruido!).

En un sistema de tiempo real firme , si el resultado de la ejecución del proceso llega después de la fecha límite, descartamos ese resultado, pero no se considera que el sistema haya fallado.

Ejemplo: comunicación por satélite para monitorear la posición del enemigo o alguna otra tarea. Si la estación de computadora terrestre a la que los satélites envían las tramas periódicamente está sobrecargada, y la trama actual (paquete) no se procesa a tiempo y aparece la siguiente, el paquete actual (el que no cumplió con la fecha límite) no importa si el procesamiento se hizo (o la mitad o casi terminado) se descarta. Pero no se dice que la computadora de tierra haya fallado por completo.

Rubal
fuente
El ejemplo del navegador es incorrecto. El tiempo no es un recurso en un navegador web: este no es un sistema en tiempo real en absoluto.
Bart Friederichs
6

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.

E. Douglas Jensen
fuente
"La primera revolución es cuando cambias de opinión sobre cómo ves las cosas y ves que puede haber otra forma de verlas que no te han mostrado". --Gil Scott-Heron, "La revolución no se televisará"
E. Douglas Jensen
2

en tiempo real: pertenece a un sistema o modo de operación en el que el cálculo se realiza durante el tiempo real en que ocurre un proceso externo, para que los resultados del cálculo se puedan utilizar para controlar, monitorear o responder al proceso externo en el momento oportuno. conducta. [Estándar IEEE 610.12.1990]

Sé que esta definición es antigua, muy antigua. Sin embargo, no puedo encontrar una definición más reciente del IEEE (Instituto de ingenieros eléctricos y electrónicos).

Mike Jablonski
fuente
2
En realidad, 1990 no es nada viejo. Tuve esta discusión en los años 70 y la definición era aproximadamente la misma.
Hot Licks
2

Considere una tarea que ingresa datos desde el puerto serie. Cuando llegan nuevos datos, el puerto serie desencadena un evento. Cuando el software atiende ese evento, lee y procesa los nuevos datos. El puerto serie tiene un hardware para almacenar los datos entrantes (2 en el MSP432, 16 en el TM4C123) de modo que si el búfer está lleno y llegan más datos, se pierden los nuevos datos. ¿Es este sistema duro, firme o blando en tiempo real?

Es difícil el tiempo real porque si la respuesta se retrasa, se pueden perder datos.


Considere un audífono que ingrese sonidos desde un micrófono, manipule los datos de sonido y luego los envíe a un altavoz. El sistema generalmente tiene una fluctuación pequeña y limitada, pero ocasionalmente otras tareas en el audífono hacen que algunos datos se retrasen, lo que genera un pulso de ruido en el altavoz. ¿Es este sistema duro, firme o blando en tiempo real?

Es un tiempo real firme porque provoca un error que se puede percibir pero el efecto es inofensivo y no altera significativamente la calidad de la experiencia.


Considere una tarea que envía datos a una impresora. Cuando la impresora está inactiva, la impresora activa un evento. Cuando el software atiende ese evento, envía más datos a la impresora. ¿Es este sistema duro, firme o blando en tiempo real?

Es un tiempo real suave porque cuanto más rápido responde mejor, pero el valor del sistema (el ancho de banda es la cantidad de datos impresos por segundo) disminuye con la latencia.

UTAustinX: UT.RTBN.12.01x Redes Bluetooth en tiempo real

Mohamed Abd El Raouf
fuente
1

Tal vez la definición sea incorrecta.

Desde mi experiencia, separaría los dos como dependientes del hardware y del software.

Si tiene 200 ms para dar servicio a una interrupción impulsada por hardware, eso es lo que tiene. Pones 300ms de código allí y el sistema no está roto, no se ha desarrollado. Se le cambiará antes de que haya terminado. Su código no funciona o no es adecuado para su propósito. Muchos sistemas tienen períodos de procesamiento definidos de manera estricta. Video, telecomunicaciones, etc.

Si está escribiendo una aplicación que es en tiempo real, esto podría considerarse suave . Si se queda sin tiempo, puede esperar menos carga la próxima vez, puede ajustar el sistema operativo, agregar algo de memoria o incluso actualizar el hardware. Tienes opciones.

Verlo desde una perspectiva de UX no es útil. Es posible que un Skoda no se rompa si falla, pero un BMW seguro que lo estará.

Steve
fuente
¡Qué tienes contra Škodas!
Erik Kaplun
1

La definición se ha ampliado a lo largo de los años en detrimento del término. Lo que ahora se llama tiempo real "difícil" es lo que solía llamarse simplemente tiempo real. Por lo tanto, los sistemas en los que faltan ventanas de tiempo (en lugar de plazos de tiempo unilaterales) darían como resultado datos incorrectos o un comportamiento incorrecto deben considerarse en tiempo real. Los sistemas sin esa característica se considerarían no en tiempo real.

Eso no quiere decir que el tiempo no sea de interés en los sistemas que no son de tiempo real, solo significa que los requisitos de tiempo en dichos sistemas no dan como resultado resultados fundamentalmente incorrectos.

user1671787
fuente
1

Los sistemas de tiempo real duro utilizan una versión preventiva de la programación de prioridades, de modo que las tareas críticas se programan de inmediato, mientras que los sistemas de tiempo real suave utilizan una versión no preventiva de la programación de prioridades, lo que permite que la tarea presente se termine antes de que el control se transfiera a la prioridad más alta. tarea, lo que provoca retrasos adicionales. Por lo tanto, los plazos de las tareas se siguen de forma crítica en los sistemas de tiempo real Hard, mientras que en los sistemas de tiempo real suaves no se manejan con tanta seriedad.

Kishor Bhoyar
fuente