¿Sabías que mientras has abierto el navegador para leer esto… tu ordenador ha decidido priorizar ese proceso dejando a la cola muchos otros?🤯 ¿Quieres saber cómo lo hace? ¿Qué significa que Linux se convierta en un RTOS? Pues sigue leyendo que te lo enseño. Y ojo, porque si te interesa el mundo del SO del pingüino, te vamos a contar más de un dato que quizá no sepas…💥
El planificador de Linux funciona tal y como en el ejemplo anterior: Básicamente, decide en qué estado poner los procesos (en ejecución, interrumpible, no interrumpible, zombie o detenido) y su orden de ejecución para mejorar tu experiencia. Para su orden de ejecución, cada proceso cuenta con un nivel de prioridad. Supongamos que tienes un proceso en segundo plano ejecutándose y abres el navegador. El planificador interrumpirá ese proceso en segundo plano y centrará los recursos en abrir el navegador, asegurándose así de que se ejecute de forma rápida y eficaz.
¿Expropiación en Linux🐧? No es en lo que estás pensando… La expropiación es una característica fundamental, ya que permite que los procesos sean interrumpidos si irrumpe uno de mayor prioridad. En la versión 2.6 de Linux, se añadió al kernel la capacidad de expropiar procesos, es decir, el kernel puede interrumpir procesos. Los sistemas que no son preemptibles deben terminar la tarea que esté en ejecución para poder llegar a la siguiente.
En el caso de Linux, desde la versión 2.6.24, se usa el Completely Fair Scheduler (CFS) como planificador. Este planificador se rige por garantizar un acceso “justo” a la CPU.
Existen dos tipos de prioridades: estática y dinámica.
El sistema operativo mantiene dos listas de programas:
Cuando un programa utiliza su tiempo, el sistema calcula cuánto tiempo debería tener la próxima vez y lo mueve a la segunda lista. Cuando la primera lista se vacía, las dos listas se intercambian. Esto ayuda al sistema a trabajar de manera eficiente.
Linux 2.6, con el kernel totalmente preemptible, mejoró considerablemente la capacidad de respuesta del sistema. Ahora, el kernel puede ser interrumpido en tareas de baja prioridad para responder a eventos prioritarios.
PREEMPT_RT dentro del Kernel de Linux
Con una nueva actualización del kernel, Linux podrá ser controlado con una precisión milimétrica. Un RTOS implica que el sistema será preciso para tareas críticas, como en centros médicos. Sin embargo, como Linux no fue pensado para eso, que ahora sea parte de su núcleo aporta ciertas características, aunque no lo conviertan en un RTOS.
Característica | Mejora |
---|---|
Integración directa y mantenimiento simplificado |
|
Mejora de la estabilidad y el rendimiento |
|
Accesibilidad para desarrolladores |
|
Competencia con sistemas dedicados |
|
Casos de uso ampliados |
|
Además de problemas financieros y el poco interés de la comunidad en darle un enfoque de tiempo real a Linux, surgió un problema técnico: la función printk
.
Printk es una función que imprime mensajes en el búfer de registro del kernel. El problema con esta función es que producía retrasos cada vez que se llamaba. Este retraso interrumpía el flujo normal del sistema, y alejado este problema, PREEMPT_RT se pudo incorporar al kernel.
Para el usuario promedio: nada.
Sin embargo, si te dedicas al desarrollo, esta innovación en el core de Linux será un avance a tener muy en cuenta. Hasta ahora, los desarrolladores que necesitan precisión en tiempo real optaban por otros sistemas operativos diseñados para ello. Con la nueva función PREEMPT_RT integrada en el kernel de Linux, esto ya no será necesario. La función permite que Linux detenga cualquier tarea para priorizar una solicitud en tiempo real, esencial en aplicaciones que demandan baja latencia.
Imagina que estás usando un asistente de voz en casa que controla tanto la iluminación como el sistema de seguridad. Si detecta una intrusión mientras estás en casa, debe priorizar la activación de las alarmas y notificarte de inmediato. En este caso, las luces o la música pueden esperar; lo que realmente importa es tu seguridad. Esta capacidad de respuesta inmediata en situaciones críticas puede marcar la diferencia.
Como hemos visto en el caso de uso, los RTOS pueden completar tareas imprevistas, además, en tiempos concretos y predecibles. En cargas de trabajo que requieren precisión, los RTOS juegan un papel fundamental. En este caso, los RTOS suelen verse en aplicaciones para IoT:
La IA y el aprendizaje automático también juegan un papel fundamental en los RTOS y en el IoT. Podrían predecir eventos y favorecer la toma de decisiones rápidas y efectivas.
En resumen, Linux Real Time será por fin una realidad. La integración de Linux como sistema operativo en tiempo real marca un antes y un después yabre nuevas oportunidades para tareas críticas en sectores como la salud, la robótica y el IoT. Con la función PREEMPT_RT integrada en el núcleo, Ubuntu Linux garantiza mayor precisión. Sin embargo, no debemos dejar de tener en cuenta que el sistema operativo del pingüino🐧 no es 100% un RTOS, no fue diseñado para ello. Así pues, veremos si las empresas adaptarán la solución de Canonical a sus necesidades a tiempo real, o seguirán optando por otras soluciones como FreeRTOS o Zephyr.
¿Quieres seguir aprendiendo sobre Linux? Te ofrecemos certificaciones oficiales. Y si no tienes suficiente… nos adaptamos a ti con formación a medida 👇
Formación intensiva en sistemas Linux
Linux está a la orden del día… si no quieres quedarte fuera de las últimas demandas tecnológicas, te recomendamos nuestros cursos de Canonical Ubuntu 👇
¿Sabías que muchos sistemas AIX están "funcionando bien" hasta que, de repente... dejan de hacerlo?😱…
La evolución de la arquitectura Power de IBM ha sido objeto de intenso debate en…
En una conversación reciente con lo que yo llamo los Magos de Power, es decir,…
La alta disponibilidad y la continuidad del negocio son cruciales para mantener las aplicaciones y…
En esta época tecnológica, tan cambiante y compleja, elegir proveedores adecuados es crucial. Cuando se…
Formación IBM RPG: SIXE❤️IBM i y RPG SIXE es un referente en formación oficial de…