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.