Desarrollo de un Sistema Gráfico para Análisis Diseño y Monitoreo de Tareas de Tiempo Real

Desarrollo de un Sistema Gráfico para Análisis Diseño y Monitoreo de Tareas de Tiempo Real

Miguel Angel Fajardo Ortíz
 

Texto completo de la Tesis     

 


Resumen

El problema de planificar un conjunto de tareas de tiempo real sobre sistemas uniprocesadores es considerado como un problema altamente complejo y de muchas variantes. Esto se debe al hecho de que este sistema debe ejecutarse siempre de forma predecible y cumplir con plazos de respuesta predefinidos. Un sistema de tiempo real se compone de un conjunto de tareas que se ejecutan de forma concurrente. Por lo tanto, las tareas de tiempo real compiten por el CPU, y por los recursos del sistema. El problema del cumplimiento de los plazos de respuestas de las tareas resulta difícil debido a que no siempre se obtienen o se modelan con precisión los parámetros temporales. Para cumplir con sus requerimientos temporales (plazos de respuesta), las tareas de un sistema de tiempo real deben obtener con precisión sus tiempos de cómputo, y aplicar un algoritmo de planificación que les permita ejecutarse de forma predecible y siguiendo determinadas prioridades de ejecución. El algoritmo de planificación se encarga de asignar prioridades de ejecución a las tareas de forma tal que ninguna de estas pierda sus plazos de respuesta. Desafortunadamente, hoy en dia existen pocas herramientas de diseño que permitan validar y monitorizar los parámetros temporales de un sistema de tiempo real. Por este motivo, en esta tesis nos propusimos el desarrollo de una herramienta que facilite el diseño y el análisis de tareas de tiempo real, y que permita hacer un seguimiento de su ejecución de forma gráfica. En la herramienta desarrollada, se han incluido los esquemas de planificación con prioridades fijas: Rate Monotonic (RM), Deadline Monotonic (DM) y con prioridades dinámicas: Earliest Deadline First (EDF), Least Laxity First (LLF). Para el desarrollo de la herramienta nos hemos enfocado en conjuntos de tareas periódicas, desalojables (preemptive), para ambientes de un solo procesador. La herramienta posee dos modos de funcionamiento: Modo estático y, modo dinámico. En el modo estático, el usuario de la herramienta proporciona los parámetros temporales de cada tarea, mientras que para el modo de trabajo dinámico, los datos son proporcionados por un archivo generado por un Micro-Kernel de tiempo real.