next up previous
Siguiente: Las tareas de tiempo Arriba: Realización en Linux: RT-Linux Previo: Soluciones existentes para Linux

Características generales de RT-Linux

RT-Linux fue realizado por Michael Barabanov [3] como parte de un trabajo universitario para el Instituto de Tecnología de Nuevo México.

Sus características generales las podemos resumir en los siguientes puntos:

Internamente, RT-Linux es como un micronúcleo que realiza operaciones muy básicas, como es gestionar todas las interrupciones y planificar las tareas de tiempo real. El núcleo ``normal'' de Linux se convierte en una tarea más, a la que se le da la mínima prioridad (lo que veíamos denominado como tareas de segundo plano). Para conseguirlo, todas las instrucciones de lenguaje máquina relacionadas con interrupciones, se enmascaran para que Linux no las ejecute directamente.

Así, Linux deja de disponer de las instrucciones cli, sti e iret para tener en su lugar llamadas al propio micronúcleo de RT-Linux, que las simulan. Así pues, cuando Linux quiere ``desactivar'' las interrupciones, no ejecutará la instrucción de lenguaje máquina realmente, sino que se lo dirá a RT-Linux. RT-Linux no desactivará realmente las interrupciones (pues las necesita para su planificación, como las de reloj) sino que las tratará por su cuenta, sin pasárselas a Linux hasta que las ``reactive''.

Por así decirlo, Linux pierde el control del sistema y, al ser la tarea de menor prioridad, corre el riesgo de no tener oportunidad para ejecutarse si las tareas críticas ocupan toda la CPU. En consecuencia, un incorrecto dimensionamiento de un sistema de tiempo real puede dar lugar a que Linux aparente bloquearse cuando en realidad lo que sucede es que la CPU está continuamente ejecutando las tareas críticas.

No obstante esta solución tiene la ventaja inmediata de poder controlar desde un sistema Linux los procesos críticos mientras se usa la tarea Linux para procesar datos no críticos o incluso como estación de trabajo normal. RT-Linux enfoca el uso de Linux a tareas no críticas como el almacenamiento de los datos muestreados por las tareas de tiempo real, dejando a estas últimas el muestreo a través de los dispositivos específicos, y la actuación correspondiente sobre éstos, en su caso.

RT-Linux se comporta de forma bastante eficiente, pudiendo muestrear con precisión de hasta 30 microsegundos en sistemas 486/33Mhz.


next up previous
Siguiente: Las tareas de tiempo Arriba: Realización en Linux: RT-Linux Previo: Soluciones existentes para Linux
Juan Jose Amor
1998-07-29