Download Kernel Para PDA Con Soporte a Procesos De Tiempo Real

Document related concepts
Transcript
Kernel Para PDA Con Soporte a
Procesos De Tiempo Real
Francisco Javier Zuluaga Ramírez
Asesor: Dr. Pedro Mejía Álvarez
Contenido
Introducción
Antecedentes
Planteamiento del problema
Objetivo General
Objetivos Particulares
Metodología
Productos Esperados
Calendario
Referencias
Introducción
Un sistema de tiempo real, es aquel en el
que los procesos tienen que cumplir
restricciones de tiempo.
Tiempo real NO es cómputo rápido.
Plazo crítico, si los resultados llegan tarde
pueden ser fatales o de poca utilidad.
Plazo no crítico, si los resultados llegan
tarde todavía son útiles.
Introducción
Estructura de un sistema operativo

Componentes
Manejador de procesos
 Manejador de colas
 Manejador de memoria
 Manejador de archivos
 Manejador de dispositivos de Entrada/Salida

Introducción
Estructura de un sistema operativo

Servicios
Ejecución de programas
 Operaciones de Entrada/Salida
 Manipulación del sistema de archivos
 Comunicación entre procesos
 Detección de errores

Antecedentes
Existen implementaciones de sistemas operativos que
ofrecen soporte para procesos de tiempo real, la mayoría
propietarias. En el caso de sistemas de código abierto, el
más representativo es RTAI. A pesar de que cuenta con
gran soporte, no existe una implementación de la
herramienta para una arquitectura como la planteada en el
presente trabajo, y considerando el auge que los
dispositivos móviles han tenido, es importante considerar
el desarrollo de un sistema que ofrezca soporte para
procesos de tiempo real para este tipo de dispositivos.
Implementaciones Existentes
Propietarias





LynxOS de
Linuxworks
BlueCat de
Linuxworks
RTLinux
PSX de JMI Software
Systems, inc. (No
basado en Linux)
C Executive de JMI
Software Systems, inc.
Código abierto


RTAI
FreeRTOS
Opciones Para La Implementación
Del Kernel De Tiempo Real
Soporte nativo en linux.
Linux como tarea de tiempo real (RTAI).
Diagrama Conceptual De Linux
Manejo de Interrupciones En
Linux
Descriptor de IRQ’s (Interruption
ReQuest)
Status :
IRQ_INPROGRESS,
IRQ_DISABLED,
IRQ_PENDING.
Handler : identifica al
pic que atiende la
interrupción.
Action : Lista de ISR’s
Arquitectura de RTAI
Manejo de hardware
Planificador
Comunicación entre
procesos
Planteamiento del Problema
En los últimos años la cantidad de sistemas empotrados ha
crecido. Muchas de las aplicaciones para este tipo de
sistemas tienen que operar cumpliendo ciertas restricciones
temporales, por lo que es necesario el desarrollo de
sistemas operativos que ofrezcan soporte para dichas
aplicaciones. A pesar de la existencia de este tipo de
sistemas operativos, la mayoría son propietarios. En tanto
que, los sistemas de código abierto no cuentan con una
implementación para dispositivos móviles, por lo que es
particularmente importante desarrollar un sistema
operativo con soporte para aplicaciones de tiempo real y
que sea de código abierto, para dar una mayor flexibilidad
a desarrolladores y usuarios.
Objetivo General Del Proyecto
Desarrollar un Kernel para una PDA, el cual
ofrezca soporte a procesos de tiempo real y
su funcionamiento se encuentre basado en
Linux, el cual permita la existencia de
aplicaciones de tiempo real en sistemas
empotrados, y
sirva de base para la
implementación de sistemas similares en
otras arquitecturas.
Objetivos Particulares
Estudio de la arquitectura de Linux.
Estudio de la arquitectura de RTAI.
Implementación del kernel de tiempo real
en una arquitectura i386.
Migración del kernel de tiempo real de la
arquitectura i386 a la arquitectura de la
PDA.
Metodología
El primer paso a realizar en el trabajo aquí planteado, es realizar un
estudio minucioso de la arquitectura del sistema operativo Linux, a fin
de evaluar las distintas alternativas existentes para realizar la
modificación del kernel de Linux para ofrecer soporte a procesos de
tiempo real.
De manera paralela al estudio de Linux, se realizara el estudio de la
arquitectura de RTAI, pues es la alternativa más representativa de
sistemas que ofrecen soporte para procesos de tiempo real basándose
en Linux.
Se realizará la implantación de los manejadores de colas, procesos, y
de procesador para kernel con soporte de tiempo real, en una
arquitectura i386.
Implantación de esquemas de comunicación entre procesos para el
kernel, en una arquitectura i386.
Estudio de la arquitectura de la PDA
Migración del kernel de tiempo real a la arquitectura de la PDA.
Productos Esperados
Al finalizar el trabajo se contará con un kernel con soporte
para procesos de tiempo real, que pueda ejecutarse sobre
una PDA. El Kernel deberá incluir un manejador de
procesos, un manejador de procesador, un manejador de
colas, así como un conjunto de primitivas que permitan la
comunicación entre procesos, tales como semáforos y paso
de mensajes. Debido a que actualmente no existen
implementaciones de sistemas operativos de tiempo real de
código abierto para la arquitectura planteada, se espera que
sirva como base para desarrollos futuros.
Calendario
Referencias
[1] Liu & Layland, “Scheduling algorithms for multiprogramming in a hard realtime environment”, Journal of the ACM, Vol.20 Nº 1, Jan. 1973, pp. 46-61
[2] Lehoczky, Sha & Ding, “The rate monotonic scheduling: Exact
Characterization And Average Case Behavior”, Proceedings IEEE, May 1989,
pp. 166
[3] J.Santos y J.Orozco, “Rate monotonic scheduling in hard real-time systems”,
Information Processing Letters 48, pp.37-45
[4] Bill Weinberg, “Porting RTOS Device Drivers to Embedded Linux”, Linux
Journal, Oct. 2004
[5] Al.Rubini & J. Corbet, “Linux Device Drivers” 2nd Edition. ISBN 0596000081
[6] D. Comer , “Operating Systems Design: The Xinu Approach”, 1st Edition
ISBN 0136375391
[7] http://www.rtai.org