Idea Principal SubUn sistema operativo de tiempo real nace bajo la necesidad de poder responder a los requerimientos de determinadas tareas críticas al tiempo en que ellos se producen.
Estrategia: Administrar los recursos computacionales adecuadamente para manejar tareas en tiempo real, por ejemplo interrupciones.
Tratar a Linux como una tarea de baja prioridad insertando un microkernel de tiempo real.
S.O. Tradicional Arquitectura de sistema operativo: La memoria física se divide en espacio usuario y espacio kernel.
El kernel maneja aplicaciones del espacio usuario.
Las principales labores de un sistema operativo son: Gestión y planificación de procesos. Gestión de memoria. Interacción con el hardware. Servidor de archivos. Servidor de comunicaciones S.O. Tradicional La principal función de un S.O en tiempo real es proveer un servicio adecuado a las aplicaciones que requieran respuesta en un intervalo de tiempo determinado.
¿Qué implica insertar un microkernel?
capacidad de interceptar y tratar las interrupciones de hardware con el fin de minimizar los tiempos de espera.
S.O. de Tiempo Real
S.O. de Tiempo Real
Se cuantifica esta propiedad mediante dos medidas del tiempo de respuesta:
Latencia: tiempo desde que se produce una interrupción (sofware o hardware) hasta que se ejecuta la primera rutina de tratamiento.
Jitter : el periodo de Jitter cuantifica las desviaciones temporales que presenta la ejecuación de una tarea periódica con respecto al tiempo que demora cada ciclo. S.O. de Tiempo Real
En conclusión:
Un sistema operativo de tiempo real deberá asegurar valores bajos de Latencia y Jitter, y dentro de márgenes de variación máxima determinados. S.O. de Tiempo Real
Tipos de Tiempo Real Tiempo real estricto(Hard Real Time): aplicaciones que tienen plazos estrictos y resulución de tiempo muy fina. Ej: un robot que maneja autos.
Tiempo real flexible(Soft Real Time): aplicaciones que tienen plazos flexibles y resolución de tiempo no muy fina. Ej: editor de texto.
Tiempo real firme(Firm Real Time): aplicaciones que permiten fallar algunos plazos pero que requieren resulución de tiempo muy fina.
En la actualidad hay dos corrientes de diseño:
Atención prioritaria en el kernel estándar (Preemptable kernel): Se realizan modificaciones al kernel.
Modificaciones sobre le kernel estándar(Patch): Se añade un kernel dual para manejar RT.
Estructura de un S.O. de Tiempo Real
Entonces… Este micro-kernel intercepta las interrupciones hardware y asegura que las tareas de tiempo real ejecuten con la mayor prioridad posible de forma que la latencia se minimice.
Ejemplo de implementación de esta metodología son RTLinux y RTAI.
Instalando RTAI Debe recompilarse el kernel parchado. Instalar Debian, preferentemente usando sistema de archivos ext3. Descargar el kernel fuente: apt-get install kernel-source-version. Extraer el kernel fuente: cd /usr/src/ tar xjf kernel-source-version.
Parchar el kernel con RTAI. Descargar rtai-24.1.11.tgz en home/my_home Tar xzf rtai-24.1.11.tgz Cd /usr/src/linux su patch p1 < /home/my_home/rtai- 24.1.11/patches/patch-2.4.18-rthal15g
Compilar kernel (con patch). cd /usr/src ln s kernel-source-version linux cd Linux make xconfig (o también: gconfig, menuconfig) make dep make bzImage
make modules make module_installl cp arch/i386/boot/bxImage /boot En nuestro caso se utilizó el gestor de arranque grub por lo que agregamos la nueva editando el archivo /boot/grub/menu.lst Finalente rebooteamos para comprobar la correcta instalación. Compilar kernel (con patch).
Compilar RTAI. Se compila RTAI. Se comprueba su funcionamiento con programas de prueba incorporados.
Proceso de desarrollo de RTAI.