CICLIC: HERRAMIENTA PARA CREAR PLANIFICADORES CICLICOS FACTIBLES José Yépez, Josep Guardia, Manel Velasco, Jordi Ayza, Pau Marti y Josep M. Fuertes Dep. de Enginyeria de Sistemes, Automàtica i Informàtica Industrial, Universitat Politècnica de Catalunya C/ Pau Gargallo 5, 08028 Barcelona, España (jose.yepez, josep.guardia, manel.velasco, jordi.ayza, pau.marti, josep.m.fuertes)@upc.edu Resumen Uno de los planteamientos válidos para realizar la implementación de la gestión de tareas en sistemas de tiempo real periódicos lo constituye la utilización de planificadores cíclicos. Este método de planificación goza de un alto grado de determinismo, previsibilidad, fiabilidad y sencillez de implementación. Además, es un método bien conocido y ampliamente utilizado en entornos industriales. El principal inconveniente de este tipo de planificador es la falta de flexibilidad, ya que cualquier cambio en el conjunto de tareas o en sus características temporales obliga a rehacer el plan de ejecución. Para solventar estos inconvenientes es necesario, y muchas veces indispensable, contar con herramientas que ayuden a los diseñadores del sistema en la creación de la planificación cíclica de forma automática. En este trabajo se describe una herramienta denominada CICLIC, que sirve de soporte en el diseño o regeneración de planificaciones cíclicas. El mecanismo de diseño se basa en algoritmos de búsqueda exhaustiva que utilizan reglas heurísticas para optimizar el camino de búsqueda. Para ilustrar el uso de CICLIC se presentan algunos ejemplos. Palabras Clave: Planificación cíclica, sistemas de tiempo real, simulación. 1 INTRODUCCION Una de las características más importantes de un sistema de tiempo real es que su correcto funcionamiento depende tanto de proporcionar las salidas adecuadas como de hacerlo dentro del intervalo de tiempo requerido [16]. Este requisito conduce a uno de los problemas fundamentales en el diseño de sistemas de tiempo real, que es la planificación del tiempo de ejecución, de forma que las respuestas se produzcan dentro del plazo fijado. El problema general de automatizar la generación de una planificación factible de un conjunto de tareas es un problema NP-Hard [7]. Una aproximación para construir sistemas de tiempo real consiste en calcular la planificación admisible antes de poner en marcha el sistema, es decir fuera de línea (off-line). Posteriormente, el planificador de tiempo real ejecuta las tareas de acuerdo al plan de ejecución establecido. El planteamiento clásico de planificador de tiempo real off-line, lo constituye el planificador cíclico. Un planificador cíclico [1,6] es un procedimiento iterativo que permite multiplexar de forma explícita un conjunto de tareas sobre un procesador. Los planificadores cíclicos están definidos por tablas de planificación o planes de ejecución, las cuales se construyen a partir del conjunto de tareas y sus restricciones temporales. Cada entrada de la tabla contiene el segmento de código asociado a una de las tareas que conforman el plan. El procesador ejecuta cada uno de los segmentos de código de la tabla en estricto orden. Cuando todas las entradas de la tabla han sido ejecutadas el procesador regresa a la primera entrada de la tabla y el proceso se repite. Para mantener la planificación cíclica sincronizada con el tiempo de la aplicación, se utilizan interrupciones periódicas dadas por un reloj. Específicamente, de forma estándar la tabla de planes contiene un plan principal que define la secuencia de tareas a ejecutar durante un periodo fijo de tiempo llamado ciclo principal. El plan principal se divide en uno o más planes secundarios, los cuales incluyen la secuencia de tareas que deben ejecutarse durante un periodo fijo de tiempo llamado ciclo secundario. En general los planes secundarios de un mismo plan principal contendrán secuencias de distintas tareas, dependiendo de las características temporales de cada una de ellas. En realidad, cada plan secundario contiene uno o más marcos. Y dentro de cada marco se ejecuta una tarea, o parte de ella, según la secuencia correspondiente al plan secundario. Para verificar las restricciones temporales de un conjunto de tareas concurrentes, los diseñadores deben comprobar que dichas restricciones se cumplan. Actualmente existe un numeroso conjunto de métodos cuantitativos que forman parte de la teoría de planificación de tiempo real [12], [10], etc.