Características técnicas

SUSE Linux Enterprise Real Time se basa en el último núcleo de Linux, e incluye el último conjunto de parches para tiempo real, preempt RT, que incorpora apropiación con bloqueos dinámicos e interrupciones de ejecución de hilos de proceso por dispositivo, así como herencia de prioridad. Además, incluye compatibilidad con protección de CPU, asignación de recursos y temporizadores de alta resolución, así como controladores de kernel para la pila de software de código abierto RDMA más reciente de OpenFabrics Alliance, OpenFabrics Enterprise Distribution (OFED).

Bloqueos dinámicos

SUSE Linux Enterprise Real Time contiene modificaciones que permiten la interrupción o preferencia de secciones del kernel de Linux en las que previamente no se admitían interrupciones. La latencia se reduce al mínimo y los tiempos de respuesta son más predecibles, lo que le permite eliminar la probabilidad de que un sistema operativo no interrumpible interfiera en el proceso de alta prioridad, ya sea interrumpiéndolo o impidiendo que se inicie. Una modificación específica es el bloqueo dinámico, que puede ponerse en hibernación o suspenderse, y así dejar libre recursos para permitir la ejecución de procesos de mayor prioridad. Los bloqueos dinámicos reducen el tiempo de conmutación de contexto del sistema operativo, lo que mejora drásticamente el funcionamiento de las cargas de trabajo que dependen del rendimiento.

Interrupciones de ejecución de hilos de proceso

Otra de las modificaciones específicas que se han realizado para aumentar la capacidad de preferencia del núcleo de Real Time son los hilos de interrupción ejecutados desde el núcleo. Las interrupciones son procesos que pueden iniciarse mediante hardware (interrupción por hardware) o software (interrupción por software) y que, una vez iniciados, hacen que el núcleo de Linux conmute del modo de proceso al de interrupción. Los procesos que se ejecutan en modo de interrupción en un sistema operativo de propósito general no disponen de preferencia. Con SUSE Linux Enterprise Real Time, estas interrupciones se hallan limitadas o encapsuladas por hilos del núcleo, que pueden interrumpirse y que permiten que los dos tipos de interrupciones mencionadas anteriormente se puedan controlar desde procesos de mayor prioridad definidos por el usuario.

Herencia de prioridades

La herencia de prioridad hace referencia a la capacidad de un proceso de baja prioridad para asumir una prioridad más elevada si hay un proceso de mayor prioridad que requiera la finalización del proceso de baja prioridad a fin de poder completar su tarea. Con SUSE Linux Enterprise Real Time, los servicios del núcleo solicitados por un proceso de alta prioridad no tendrán que esperar indefinidamente mientras otros servicios de núcleo solicitados por un proceso de baja prioridad (y que acapara un semáforo) se mueven a la velocidad de tortuga que estipula su prioridad inferior. Así, se aumentará la prioridad del proceso de baja prioridad, o este heredará la del de alta, hasta que el semáforo esté libre. Asimismo, Real Time incluye una librería glibc alternativa que amplía la herencia de prioridad al espacio de usuario. Las aplicaciones que utilicen esta glibc alternativa pueden solicitar la aplicación de la herencia de prioridad a sus exclusiones mutuas POSIX.

Protección y asignación de CPU

Con SUSE Linux Enterprise Real Time, los usuarios disponen de control absoluto sobre la asignación de procesos e hilos a los microprocesadores. Los procesos que necesiten ejecutarse en tiempo real pueden asignarse a microprocesadores o núcleos de forma exclusiva. Es posible blindar totalmente los microprocesadores que ejecuten tareas en tiempo real para aislarlos de cualquier otro proceso que no se les haya asignado específicamente, lo que garantiza que los recursos estarán siempre disponibles para procesos de alta prioridad, y el efecto del aumento de la carga de trabajo será mínimo. Esto hace posible una mayor fiabilidad y predictibilidad.

Temporizadores de alta resolución

Los servicios de temporizador posix de baja resolución (40 milisegundos) del núcleo se han sustituido por una nueva implantación que cuenta con una resolución de unos 2 microsegundos. El tiempo que el sistema invierte procesando interrupciones, llamadas al sistema, daemons del núcleo y aplicaciones de usuario se contabiliza ahora con una resolución del orden de nanosegundos.