Los sistemas operativos que usamos a diario en nuestros ordenadores son sistemas operativos de propósito general, pero existen otros tipos, quizás menos conocidos, como el sistema operativo de tiempo real o Real-Time OS. ¿No lo conoces aún? Aquí te contamos qué son, cuáles son las diferencias, y para qué se pueden utilizar.
Índice de contenidos
¿Qué es un sistema operativo en tiempo real?
Un sistema operativo en tiempo real (RTOS o Real Time Operating System) es un software que gestiona los recursos de hardware y software de un sistema embebido, asegurando que las tareas críticas se ejecuten en tiempos predefinidos. Es decir, básicamente un sistema operativo como los normales, pero para sistemas empotrados cuyas tareas son críticas, dinde una respuesta tardía puede causar fallos graves, como en sistemas de control industrial, sistemas de vuelo y dispositivos médicos.
Se puede decir que un RTOS se caracteriza por:
- Ejecuta en tiempo real: de ahí su nombre, ya que garantizan que una tarea se ejecutará en un tiempo predecible.
- Priorización de tareas: manejan múltiples procesos con prioridades distintas. Además, son más eficientes para tareas específicas.
- Bajo overhead: optimizados para ejecutar operaciones rápidamente sin retardos innecesarios.
Y si te estás preguntando por algunos ejemplos de este tipo de sistemas operativos conocidos son FreeRTOS, QNX, Zephyr, etc. Nada que ver con los habituales Windows, macOS, etc. No obstante, hay que decir que el kernel de Linux puede funcionar también en tiempo real mediante modificaciones, como el parche PREEMPT_RT (Real-Time Patch). Este parche transforma Linux en un sistema operativo en tiempo real suave (soft real-time) y, en algunos casos, en un sistema de tiempo real estricto (hard real-time). En el caso de Windows, no puede funcionar en tiempo real de ninguna manera, pero existe una versión que lo hace, como Windows CE.
También te puede interesar conocer cómo son los sistemas operativos usados en los equipos de los bancos
¿Cómo funciona un RTOS?
El funcionamiento de un RTOS está basado en su capacidad para gestionar tareas concurrentes con tiempos de respuesta garantizados. Para ello, se compone de las siguientes partes fundamentales:
- Planificación de tareas (Task Scheduling): implementa algorítmos de planificación para asegurar que las tareas críticas se ejecuten a tiempo. Por ejemplo, tenemos algoritmos como Round Robin que asigna un tiempo de ejecución igual para cada proceso con la misma prioridad, algoritmo basado en plazos (Deadline Scheduling) que simplemente se enfoca en que las ejecuciones cumplan los tiempos límite, o algoritmo de prioridades fijas (Fixed Priority Scheduling) donde cada proeso tiene una prioridad fija.
- Gestor de interrupciones: el RTOS maneja interrupciones de hardware con mucha eficiencia, asegurando que los eventos críticos sean atendidos de inmediato sin demoras innecesarias.
- Sincronización y comunicación entre tareas: esto también lo hacen los sistemas operativos de propósito general, y en el caso del RTOS, también son necesarios mecanismos de comunicación como semáforos, mutex y colas de mensajes para evitar condiciones de carrera y bloqueos indeseados.
- Gestor de memoria: suelen usar asignación de memoria estática para evitar la fragmentación dinámica y garantizar tiempos de acceso predecibles.
Tipos de RTOS
Los sistemas operativos en tiempo real (RTOS) se pueden clasificar en tres tipos principales:
- RTOS de Tiempo Real Duro (Hard Real-Time): garantizan que las tareas críticas se completen dentro de un tiempo predefinido sin excepciones. Son utilizados en aplicaciones donde un retraso puede causar fallos catastróficos (e.g., sistemas de control en aviones, marcapasos, reactores nucleares). Ejemplos pueden ser VxWorks, QNX, RTEMS, etc.
- RTOS de Tiempo Real Suave (Soft Real-Time): buscan completar las tareas en un tiempo determinado, pero con cierta flexibilidad; ocasionales retrasos no causan fallos graves. Usados en sistemas multimedia, telecomunicaciones y automatización industrial donde la calidad del servicio es importante, pero no vital. Ejemplos los tenemos en Linux con PREEMPT_RT, Windows CE, Zephyr, etc.
- RTOS de Tiempo Real Firme (Firm Real-Time): se sitúan entre los dos anteriores: ocasionales fallos en los plazos pueden ser tolerables, pero afectan el rendimiento del sistema. Comunes en robótica, manufactura y algunas aplicaciones médicas. Ejemplos son FreeRTOS, uC/OS-II, etc.
Aplicaciones de los sistemas operativos en tiempo real
Los RTOS se utilizan en una amplia variedad de aplicaciones, aunque nos parezcan raros. De hecho, seguro que alguna vez has usado alguno sin darte cuenta…
- Automoción: sistemas de frenos ABS, control de motor, y sistemas de infoentretenimiento.
- Navegación: control de vuelo, gestión de radares y sistemas de navegación.
- Industria médica: marcapasos avanzados, equipos de monitoreo, etc.
- Telecomunicaciones: routers y switches con procesamiento de paquetes en tiempo real, por ejemplo, los que usan Zephyr como puse de ejemplo antes.
- Internet de las Cosas (IoT): sensores industriales, automatización del hogar y dispositivos wearables.
- Robótica y automatización industrial: sistemas de control para robots y maquinaria industrial.
Te puede interesar conocer las ventajas entre Windows vs Linux vs macOS
Diferencias entre un RTOS y un sistema operativo de propósito general
Para finalizar, me gustaría comparar un sistema operativo de tiempo real con un sistema operativo de propósito general, que son los que habitualmente utilizamos en nuestros ordenadores:
Característica | RTOS | Sistema Operativo Convencional |
---|---|---|
Determinismo | Alta previsibilidad | No garantizado |
Tiempo de respuesta | Milisegundos o microsegundos | Variable dependiendo de la carga, prioridad, etc. |
Planificación | Basada en prioridad o plazo | Basada en equidad y eficiencia |
Gestor de memoria | Asignación estática | Paginación y segmentación dinámica |
Interrupciones | Manejo optimizado | Puede haber retardos |
Seguro que has usado RTOS a diario sin darte cuenta, ya que los tienes a tu alrededor, en lavadoras, algunas neveras inteligentes, cámaras digitales, coches, routers o switches de red, teléfonos fijos, algunas máquinas de recreativos, equipos de sonido, etc.
No olvides dejar tus comentarios al respecto…