Introducción a Sistemas de Tiempo Real

17
Introducción a Sistemas de Introducción a Sistemas de Tiempo Real Tiempo Real Rodrigo Camacho I Rodrigo Camacho I Gabriel Sepúlveda V Gabriel Sepúlveda V Programación de Sistemas Programación de Sistemas Segundo Semestre 2005 Segundo Semestre 2005

description

Introducción a Sistemas de Tiempo Real. Rodrigo Camacho I Gabriel Sepúlveda V Programación de Sistemas Segundo Semestre 2005. Idea Principal. Estrategia: Administrar los recursos computacionales adecuadamente para manejar tareas en tiempo real, por ejemplo interrupciones. - PowerPoint PPT Presentation

Transcript of Introducción a Sistemas de Tiempo Real

Page 1: Introducción a Sistemas de Tiempo Real

Introducción a Sistemas de Introducción a Sistemas de Tiempo RealTiempo RealRodrigo Camacho IRodrigo Camacho IGabriel Sepúlveda VGabriel Sepúlveda V

Programación de SistemasProgramación de SistemasSegundo Semestre 2005Segundo Semestre 2005

Page 2: Introducción a Sistemas de Tiempo Real

Idea PrincipalIdea PrincipalUn sistema operativo de tiempo real nace bajo la Un sistema operativo de tiempo real nace bajo la necesidad de poder responder a los necesidad de poder responder a los requerimientos de determinadas tareas críticas requerimientos de determinadas tareas críticas al tiempo en que ellos se producen.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.

Page 3: Introducción a Sistemas de Tiempo Real

S.O. TradicionalS.O. Tradicional Arquitectura de sistema operativo: La memoria física Arquitectura de sistema operativo: La memoria física

se divide en espacio usuario y espacio kernel.se divide en espacio usuario y espacio kernel.

El kernel maneja aplicaciones del espacio usuario.El kernel maneja aplicaciones del espacio usuario.

Page 4: Introducción a Sistemas de Tiempo Real

Las principales labores de un sistema operativo son:Las principales labores de un sistema operativo son:   Gestión y planificación de procesos.Gestión y planificación de procesos.   Gestión de memoria.Gestión de memoria.   Interacción con el hardware.Interacción con el hardware.   Servidor de archivos.Servidor de archivos. Servidor de comunicacionesServidor de comunicaciones

S.O. TradicionalS.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.

Page 5: Introducción a Sistemas de Tiempo Real

¿Qué implica insertar un microkernel?¿Qué implica insertar un microkernel?

capacidad de interceptar y tratar las capacidad de interceptar y tratar las interrupciones de hardware con el fin de interrupciones de hardware con el fin de minimizar los tiempos de espera.minimizar los tiempos de espera.

S.O. de Tiempo RealS.O. de Tiempo Real

Page 6: Introducción a Sistemas de Tiempo Real

S.O. de Tiempo RealS.O. de Tiempo Real

Page 7: Introducción a Sistemas de Tiempo Real

Se cuantifica esta propiedad mediante Se cuantifica esta propiedad mediante dos medidas del tiempo de respuesta:dos medidas del tiempo de respuesta:

LatenciaLatencia: tiempo desde que se produce una : tiempo desde que se produce una interrupción (sofware o hardware) hasta que interrupción (sofware o hardware) hasta que se ejecuta la primera rutina de tratamiento.se ejecuta la primera rutina de tratamiento.

Jitter Jitter : el periodo de Jitter cuantifica las : el periodo de Jitter cuantifica las desviaciones temporales que presenta la desviaciones temporales que presenta la ejecuación de una tarea periódica con ejecuación de una tarea periódica con respecto al tiempo que demora cada ciclo.respecto al tiempo que demora cada ciclo.

S.O. de Tiempo Real

Page 8: Introducción a Sistemas de Tiempo Real

En conclusión:En conclusión:

Un sistema operativo de tiempo real Un sistema operativo de tiempo real deberá deberá

asegurar valores bajos de Latencia y asegurar valores bajos de Latencia y Jitter, y Jitter, y

dentro de márgenes de variación máxima dentro de márgenes de variación máxima

determinados.determinados.

S.O. de Tiempo Real

Page 9: Introducción a Sistemas de Tiempo Real

Tipos de Tiempo RealTipos de Tiempo Real Tiempo real estricto(Hard Real Time):Tiempo real estricto(Hard Real Time): aplicaciones aplicaciones

que tienen plazos estrictos y resulución de tiempo que tienen plazos estrictos y resulución de tiempo muy fina. Ej: un robot que maneja autos.muy fina. Ej: un robot que maneja autos.

Tiempo real flexible(Soft Real Time):Tiempo real flexible(Soft Real Time): aplicaciones aplicaciones que tienen plazos flexibles y resolución de tiempo que tienen plazos flexibles y resolución de tiempo no muy fina. Ej: editor de texto.no muy fina. Ej: editor de texto.

Tiempo real firme(Firm Real Time):Tiempo real firme(Firm Real Time): aplicaciones aplicaciones que permiten fallar algunos plazos pero que que permiten fallar algunos plazos pero que requieren resulución de tiempo muy fina.requieren resulución de tiempo muy fina.

Page 10: Introducción a Sistemas de Tiempo Real

En la actualidad hay dos corrientes de diseño:En la actualidad hay dos corrientes de diseño:

Atención prioritaria en el kernel estándar (Preemptable Atención prioritaria en el kernel estándar (Preemptable kernel):kernel):Se realizan modificaciones al kernel.Se realizan modificaciones al kernel.

Modificaciones sobre le kernel estándar(Patch):Modificaciones sobre le kernel estándar(Patch):Se añade un kernel dual para manejar RT.Se añade un kernel dual para manejar RT.

Estructura de un S.O. de Estructura de un S.O. de Tiempo RealTiempo Real

Page 11: Introducción a Sistemas de Tiempo Real

Entonces...Entonces...

Este micro-kernel intercepta las interrupciones Este micro-kernel intercepta las interrupciones hardware y asegura que las tareas de tiempo real hardware y asegura que las tareas de tiempo real ejecuten con la mayor prioridad posible de forma ejecuten con la mayor prioridad posible de forma

queque la latencia se minimice.la latencia se minimice.

Ejemplo de implementación de esta metodología Ejemplo de implementación de esta metodología sonson

RTLinux y RTLinux y RTAI.RTAI.

Page 12: Introducción a Sistemas de Tiempo Real

Instalando RTAIInstalando RTAI• Debe recompilarse el kernel parchado.Debe recompilarse el kernel parchado.• Instalar Debian, preferentemente usando Instalar Debian, preferentemente usando

sistema de archivos ext3.sistema de archivos ext3.• Descargar el kernel fuente:Descargar el kernel fuente:

apt-get install kernel-source-apt-get install kernel-source-version.version.

• Extraer el kernel fuente:Extraer el kernel fuente:cd /usr/src/cd /usr/src/tar xjf kernel-source-version.tar xjf kernel-source-version.

Page 13: Introducción a Sistemas de Tiempo Real

Parchar el kernel con RTAI.Parchar el kernel con RTAI.

• Descargar rtai-24.1.11.tgz en Descargar rtai-24.1.11.tgz en home/my_homehome/my_home

• Tar xzf rtai-24.1.11.tgzTar xzf rtai-24.1.11.tgz• Cd /usr/src/linuxCd /usr/src/linux• susu• patch –p1 < /home/my_home/rtai-patch –p1 < /home/my_home/rtai-

24.1.11/patches/patch-2.4.18-rthal15g24.1.11/patches/patch-2.4.18-rthal15g

  

Page 14: Introducción a Sistemas de Tiempo Real

Compilar kernel (con patch).Compilar kernel (con patch).

• cd /usr/srccd /usr/src• ln –s kernel-source-version linuxln –s kernel-source-version linux• cd Linuxcd Linux• make xconfig (o también: gconfig, make xconfig (o también: gconfig,

menuconfig)menuconfig)• make depmake dep• make bzImagemake bzImage

Page 15: Introducción a Sistemas de Tiempo Real

• make modulesmake modules• make module_installlmake module_installl• cp arch/i386/boot/bxImage /bootcp arch/i386/boot/bxImage /boot• En nuestro caso se utilizó el gestor de En nuestro caso se utilizó el gestor de

arranque arranque grubgrub por lo que agregamos la por lo que agregamos la nueva editando el archivo nueva editando el archivo /boot/grub/menu.lst/boot/grub/menu.lst

• Finalente rebooteamos para comprobar la Finalente rebooteamos para comprobar la correcta instalación.correcta instalación.

Compilar kernel (con patch).Compilar kernel (con patch).

Page 16: Introducción a Sistemas de Tiempo Real

Compilar RTAI.Compilar RTAI.

• Se compila RTAI.Se compila RTAI.• Se comprueba su funcionamiento Se comprueba su funcionamiento

con programas de prueba con programas de prueba incorporados.incorporados.

Page 17: Introducción a Sistemas de Tiempo Real

Proceso de desarrollo de Proceso de desarrollo de RTAI.RTAI.