¿Qué empresas usan sistemas distribuidos en tiempo real?

El tiempo real necesita aclaración.

La mayoría de las personas en lenguaje común dicen “tiempo real” que significa “realmente rápido”. Pero en informática, el tiempo real tiene un significado totalmente diferente. Significa que el sistema operativo reserva algunos milisegundos por segundo para ejecutar algún código.

Entonces:

  1. Su código debe ejecutarse realmente rápido usando esos milisegundos disponibles.
  2. El sistema operativo hace todo lo demás en los milisegundos restantes del segundo que está compartiendo.

Estas restricciones significan que no puede asignar memoria, leer o escribir en la red, etc. Bueno, tal vez pueda hacerlo si tiene otra CPU para manejar eso por usted, pero la clave es que cada algoritmo debe asegurarse de regresar dentro de un tiempo muy limitado. marco de tiempo especificado.

Por eso la gente dice que Unix nunca funcionará en tiempo real. O Java nunca se ejecutará en tiempo real.

Eso no es cierto, por supuesto:

Sistemas UNIX® en tiempo real – Guía de diseño y aplicación | Borko Furht | Saltador

Desarrollo de software en tiempo real con API de Java SE: parte 1

Página principal de RTSJ

Tormenta de Apache

¿Para qué se utiliza el tiempo real?

Cosas que deben cumplir con una fecha límite dentro de un segundo o dos para cualquier entrada dada, como por ejemplo: equipo médico (no puede usar Windows para monitorear los latidos del corazón de un paciente … imagine que “Windows se está actualizando” mientras el corazón del paciente no está latiendo), semáforos (en la vida real, no puede esperar unos segundos para mover una luz verde a roja), etc.

¿Y quieres un sistema de tiempo real desestructurado?

Mmmmhhh Gracioso. Puedo imaginar varios escenarios en los que lo que dices es cierto, como la bolsa de valores, pero a decir verdad, nunca he trabajado en ellos, así que no puedo decir cómo se construyen.

Todo lo que sé es que las empresas que crean esos sistemas tienen requisitos muy difíciles en tiempo real (en unos pocos milisegundos puede volverse muy rico o muy pobre en el mercado de valores), pero he oído que esas empresas generalmente se acercan al muro calle para reducir la latencia en unos pocos milisegundos y ganar aún más dinero.

¿No es gracioso? Programas un algoritmo y le enseñas a la máquina cómo ganar dinero en el mercado de valores, y luego simplemente creas un software que suena k-ching cada vez que ganas un millón de dólares más, lo pones cerca de tu cama y puedes dormir con ese sonido de fondo … como un bebé.

El tiempo real necesita aclaraciones. Me referiré a tiempo real suave, o casi en tiempo real. En tiempo real difícil, de hecho, no es común escuchar sobre sistemas distribuidos.

El dominio financiero está lleno de ejemplos:

  • comercio de alta frecuencia
  • bolsas de valores, creadores de mercado: la arquitectura LMAX
  • la industria de la publicidad necesita combinar un anuncio de video / audio / texto de manera personalizada en tiempo real en una transmisión o feed, con muchas interconexiones comerciales para completar el mejor anuncio comercial para ganar dinero
  • si me preguntas google parece bastante cercano al tiempo real para un humano
  • Creo que hay muchos ejemplos por ahí

“Tiempo real” y “sistemas distribuidos” no son cosas que generalmente esperaría en la misma oración. La latencia de la red (sin mencionar fallas ocasionales inevitables) significa que está conectado en tiempo real. Trabajo en sistemas distribuidos con SLA de rendimiento estricto, pero no es lo mismo que en tiempo real. Me interesará ver si alguien tiene un ejemplo de lo que buscas.