Windows, Linux y transacciones de entre 2 y 12 segundos

En anteriores entradas se ha tratado el concepto de sistema tiempo real y qué características hacen que un sistema se considere tiempo real. De estas entradas pueden extraerse estas dos conclusiones:

  • Un sistema tiempo real no debe confundirse con uno que deba ejecutar tareas o gestionar información en intervalos pequeños de tiempo.
  • Un sistema en tiempo real debe asegurar que se cumplen las latencias.

En algún foro, ha surgido la siguiente discusión: ¿pueden considerarse sistemas operativos como Windows o Linux sistemas RTOS (Real Time Operating Systems)? La respuesta es no por varios motivos, pero el principal es que son sistemas operativos que no garantizan tiempos de respuesta deterministas.

¿Qué significa esto? Que la probabilidad entra en su funcionamiento (son estocásticos), es decir no se puede prever que un resultado se produzca siempre con la misma latencia. ¿Y qué factores hacen que un SO sea determinista? Principalmente dos, la planificación de procesos y el tratamiento de interrupciones de E/S.

Ninguno de los dos sistemas operativos mencionados gestiona estos dos aspectos de manera que se pueda garantizar el cumplimiento de unas latencias deterministas. Por este motivo no pueden utilizarse en entornos de tiempo real "estricto" o tradicional.

En paralelo a esta cuestión, surge otra discusión. Para la supervisión, control y gestión de información desde centros de control de infraestructuras y entornos industriales se requieren normalmente latencias de entre 2 y 12 segundos. ¿Son Windows y Linux capaces de realizar transacciones en este rango de tiempos aunque no me puedan garantizar que siempre van a tardar lo mismo en ejecutar las mismas tareas? La respuesta es afirmativa. Actualmente Windows tiene la capacidad de realizar transacciones de entre 0.1 ms y 100 ms, y Linux de alrededor de 1ms.

Por tanto, si nuestro sistema es realmente de tiempo real (valga la redundancia), no podemos utiilizar los sistemas operativos habituales y será necesario recurrir a sistemas RTOS diseñados específicamente con este objetivo. Pero para las típicas aplicaciones de supervisión y control de infraestructuas y entornos fabriles, con las latencias antes mencionadas, suele ser más que suficiente cualquiera de estas dos alternativas.

No hay comentarios: