UNA ARQUITECTURA PARA SISTEMAS INTELIGENTES ADAPTATIVOS BASADA EN EL MODELO DE PIZARRA

348
Departamento de Tecnologías de las Comunicaciones ETSI Telecomunicación Universidad de Vigo TESIS DOCTORAL UNA ARQUITECTURA PARA SISTEMAS INTELIGENTES ADAPTATIVOS BASADA EN EL MODELO DE PIZARRA Autor: Manuel Ramos Cabrer Ingeniero de Telecomunicación Director: Ángel Viña Castiñeiras Doctor Ingeniero de Telecomunicación 2000

description

Este es un aspecto fundamental de nuestra relación con los ordenadores en elque rara vez nos paramos a pensar. Y, la mayoría de las veces, no nos importa; nossatisface tener estos sirvientes obedientes, aun cuando carecen de iniciativa. Noobstante, para muchas aplicaciones de importancia, la obediencia no es suficiente:necesitamos sistemas que puedan decidir por sí mismos qué hacer ante cualquiersituación que se les presente

Transcript of UNA ARQUITECTURA PARA SISTEMAS INTELIGENTES ADAPTATIVOS BASADA EN EL MODELO DE PIZARRA

  • Departamento de Tecnologas de las ComunicacionesETSI Telecomunicacin

    Universidad de Vigo

    TESIS DOCTORAL

    UNA ARQUITECTURA PARASISTEMAS INTELIGENTES

    ADAPTATIVOS BASADA EN ELMODELO DE PIZARRA

    Autor: Manuel Ramos CabrerIngeniero de Telecomunicacin

    Director: ngel Via CastieirasDoctor Ingeniero de Telecomunicacin

    2000

  • Tesis Doctoral: UNA ARQUITECTURA PARA SISTEMAS IN-TELIGENTES ADAPTATIVOS BASADA ENEL MODELO DE PIZARRA

    Autor: Manuel Ramos Cabrer.Director: Dr. ngel Via Castieiras.

    TRIBUNAL CALIFICADORPresidente:

    Vocales:

    Secretario:

    CALIFICACIN:

    Vigo, a de de 2000.

    Presidente: Vocales: Secretario:

  • A Nuria e IlsaA mi familia

  • Agradecimientos

    Han sido muchas las personas que directa o indirectamente han contribuido aque esta tesis sea una realidad. Con estas lneas quisiera darles las gracias a todosellos:

    En primer lugar, a mi director de tesis, ngel Via, por la confianza que de-posit en mi al decidirse a dirigir este trabajo, por sus enseanzas y por su apoyodurante todos estos aos.

    A todos mis compaeros del rea de Ingeniera Telemtica de la Universidadde Vigo, por haber creado el ambiente necesario para que mi trabajo fructificara ypor estar ah siempre que los he necesitado.

    Aunque se podran dar por aludidos en las lneas anteriores, merecen una men-cin aparte Jos Pazos y Cndido Lpez. Sera un error imperdonable por mi parteconsiderarlos simplemente compaeros.

    A Ignacio Soto, ahora profesor de la Universidad Carlos III de Madrid, porcompartir tantas horas e ideas conmigo. Sin su ayuda este trabajo no hubiera sidoposible.

    A mi familia y mis amigos que, muchas veces no siendo conscientes de ello,me han dado el apoyo y la fuerza necesaria para terminar esta tesis.

    A la Xunta de Galicia por el apoyo que nos ha prestado. La financiacin re-cibida a travs del proyecto XUGA 32206A97, ha permitido realizar este trabajocon los medios materiales apropiados.

    Tambin les doy las gracias a todos aquellos que durante estos aos me hansaludado, algunos no sin cierta malicia, con la pregunta Has terminado ya latesis?. Quiero aprovechar este momento para decirles una cosa. Si!

    Finalmente quiero agradecerle a usted el inters que est mostrando por mitrabajo al estar leyendo esta tesis. Espero no defraudarle demasiado.

    Hay otras muchas personas a las que debera haber incluido en estas lneas.Espero que me perdonen por no haberlo hecho por motivos de espacio y puedenestar seguros de que no me he olvidado de ellos.

  • Resumen

    En esta tesis se presenta una arquitectura para la resolucin de problemas com-plejos en tiempo real capaz de garantizar el cumplimiento de los requisitos tem-porales de tareas de tiempo real crticas y utilizar al mismo tiempo mtodos deinteligencia artificial.

    La mayora de los sistemas de tiempo real que interactan con entornos en losque es crtico el cumplimiento de las restricciones temporales de algunas tareas sebasan en diseos estticos que garantizan que todas las tareas cumplirn siempresus plazos. Es decir, su nico objetivo es la predecibilidad de su comportamiento.

    Este tipo de diseos dejan de ser vlidos cuando se intentan resolver problemascomplejos en entornos no deterministas. Tal como indican Stankovic y Ramam-ritham [SR90]:

    La prxima generacin de sistemas de tiempo real sern grandes,complejos, adaptativos, contendrn muchos tipos de restricciones tem-porales, necesitarn trabajar en entornos altamente no deterministas,y ejecutarse durante un largo tiempo de vida del sistema . . . para estossistemas, las semnticas tpicas (todas las tareas cumplirn sus pla-zos el 100 % del tiempo) asociadas con pequeos sistemas de tiemporeal estticos no son suficientes.

    Es decir, es necesario disear sistemas que dispongan de capacidades tpicas desistemas de inteligencia artificial como adaptacin al medio con el que interac-tan, procesos de razonamiento para planificar las tareas a realizar ante situacionesno previstas o flexibilidad en su comportamiento y que, al mismo tiempo, sigangarantizando las restricciones temporales de las tareas de tiempo real cruciales.

    El problema que aparece al intentar cubrir estas dos necesidades es que lascapacidades para la resolucin de problemas complejos tpicas de las tcnicas deinteligencia artificial se basan en la utilizacin de mecanismos con tiempos deejecucin no deterministas, caracterstica que choca frontalmente con las ideas en

    I

  • II Resumen

    que se basan las tcnicas clsicas de planificacin de sistemas de tiempo real, quenecesitan que los tiempos de ejecucin de las diferentes tareas sean totalmentepredecibles.

    Para disear un sistema de este tipo se deben combinar conceptos de diversosmbitos. En concreto tcnicas de planificacin de sistemas de tiempo real, tcnicasde inteligencia artificial y algoritmos que permitan integrar tcnicas de inteligen-cia artificial en sistemas de tiempo real. En esta tesis se presenta un anlisis delos conceptos de estos mbitos que tienen alguna relevancia para la arquitecturapropuesta.

    La arquitectura que se propone se basa en el modelo de pizarra, que es unmodelo de sistemas de inteligencia artificial que ha demostrado su validez pararesolver problemas complejos en entornos no deterministas sin restricciones detiempo real crticas.

    Se ha realizado una interpretacin de este modelo que mantiene intactas suscapacidades de razonamiento y al mismo tiempo es capaz de garantizar las res-tricciones temporales de las tareas de tipo crtico.

    Esta interpretacin permite adems introducir inteligencia en las tareas detiempo real crticas mediante la utilizacin de tcnicas de procesamiento impre-ciso o algoritmos que utilicen la aproximacin de mltiples mtodos y permitetambin utilizar las capacidades de razonamiento del modelo de pizarra para con-trolar y mejorar de manera inteligente el comportamiento global del sistema.

    En la tesis se presenta dicha interpretacin, as como la arquitectura que se hadiseado y desarrollado para transformar dicha interpretacin en un sistema real.

    Tambin se presentan los resultados de la evaluacin de diferentes aspectos dedicha arquitectura.

  • Abstract

    This Thesis presents an architecture to solve real-time complex problems whichguarantees the observance of time requirements for hard real-time tasks using, atthe same time, artificial intelligence methods.

    Most of real-time systems interacting with environments where the fulfillmentof timing constraints may be critical in some tasks are based in static designs thatguarantee that every task will always meet its deadlines. That is, their only goal isthe predictability of their behaviour.

    This type of designs are no more valid for the solution of complex problemsin non-deterministic environments. As Stankovic and Ramamritham have pointedout [SR90]:

    The next generation of real-time systems will be large, complex, dis-tributed, adaptative, contain many types of timing constraints, need tooperate in a highly non-deterministic environment, and evolve over along time lifetime . . . for these systems the typical semantics (all tasksmake their deadlines 100 % of the time) associated with small staticreal-time systems is not sufficient.

    Therefore, we have to design systems with features of artificial intelligence sys-tems: adaptation to their environment, reasoning processes to plan tasks beforeunpredicted events or flexible behaviour. On the other hand, they must be able toguarantee time requirements in crucial real-time tasks.

    The difficulty to complete these two needs is that the capacities of artificialintelligence techniques for the solution of complex problems are based on mecha-nisms with non-deterministic execution times. This feature conflicts with classicalapproximations of real-time scheduling techniques, which need fully predictableexecution times for the different tasks.

    In order to design such a system, we must combine different concepts. In par-

    III

  • IV Abstract

    ticular, approximations of real-time scheduling techniques, artificial intelligencetechniques and real-time artificial intelligence algorithms. In this thesis we analy-ze the concepts from these fields which may have some relevance for the proposedarchitecture.

    The architecture we propose is based on the blackboard model, a model for ar-tificial intelligence systems which has proved its suitability when solving complexproblems in non-deterministic environments without hard real-time constraints.

    We have carried out an interpretation of this model maintaining all its reaso-ning power and being able, at the same time, to guarantee time requirements forhard real-time tasks.

    This interpretation also permits to introduce intelligence in hard real-timetasks by using imprecise computation techniques or algorithms based on multiplemethods. It also allows using the blackboard model reasoning power to controland improve in an intelligent way the overall system behaviour.

    In this thesis we present this interpretation, as well as the architecture designedand developed to transform the interpretation into a real system.

    The evaluation results of different aspects of this architecture are also pointedout.

  • ndice general

    I Introduccin y conceptos de base 1

    1. Introduccin y objetivos 31.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2. Objetivos de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . 71.3. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . 10

    2. Planificacin en sistemas de tiempo real 13

    2.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2.1.1. Caracterizacin de tareas . . . . . . . . . . . . . . . . . . 15

    2.1.2. Mtricas de prestaciones en sistemas de tiempo real . . . . 19

    2.1.3. Complejidad . . . . . . . . . . . . . . . . . . . . . . . . 212.2. Paradigmas de planificacin . . . . . . . . . . . . . . . . . . . . 21

    2.3. Algoritmos de planificacin . . . . . . . . . . . . . . . . . . . . . 26

    2.3.1. Modelo del sistema . . . . . . . . . . . . . . . . . . . . . 27

    2.3.2. Asignacin esttica de prioridades . . . . . . . . . . . . . 28

    2.3.2.1. Rate Monotonic (RM) . . . . . . . . . . . . . . 282.3.2.2. Deadline Monotonic (DM) . . . . . . . . . . . 30

    2.3.3. Asignacin dinmica de prioridades . . . . . . . . . . . . 31

    V

  • VI NDICE GENERAL

    2.3.3.1. Earliest Deadline First (EDF) . . . . . . . . . . 312.3.3.2. Least Laxity First (LLF) . . . . . . . . . . . . . 32

    2.3.4. Extensiones del modelo utilizado . . . . . . . . . . . . . 32

    2.4. Otras consideraciones importantes . . . . . . . . . . . . . . . . . 33

    2.4.1. Comparticin de recursos . . . . . . . . . . . . . . . . . 33

    2.4.2. Tratamiento de tareas crticas no peridicas . . . . . . . . 35

    2.4.3. Tratamiento de tareas no crticas . . . . . . . . . . . . . . 36

    2.4.4. Sobrecargas . . . . . . . . . . . . . . . . . . . . . . . . . 39

    2.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    3. Inteligencia artificial en tiempo real 41

    3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    3.2. Tcnicas basadas en balance de tiempo y calidad . . . . . . . . . 43

    3.2.1. Tcnicas basadas en algoritmos interrumpibles . . . . . . 43

    3.2.1.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . 453.2.2. Tcnicas basadas en el uso de mltiples mtodos . . . . . 48

    3.2.2.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . 503.3. Otras aproximaciones . . . . . . . . . . . . . . . . . . . . . . . . 51

    3.3.1. Tcnicas de reduccin de varianza . . . . . . . . . . . . . 51

    3.3.2. Tcnicas reactivas . . . . . . . . . . . . . . . . . . . . . 52

    3.4. Arquitecturas para sistemas de inteligencia artificial en tiempo real 53

    3.4.1. Introduccin de inteligencia en un sistema de tiempo real . 54

    3.4.2. Introduccin de capacidades de tiempo real en un sistemade inteligencia artificial . . . . . . . . . . . . . . . . . . . 55

    3.4.3. Sistemas cooperativos entre inteligencia artificial y tiem-po real . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

  • NDICE GENERAL VII

    4. El modelo de pizarra 59

    4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    4.2. El modelo de pizarra . . . . . . . . . . . . . . . . . . . . . . . . 61

    4.2.1. Caractersticas del modelo . . . . . . . . . . . . . . . . . 64

    4.2.2. Ejemplos de operacin de un sistema bsico de pizarra . . 654.3. El entorno de pizarra . . . . . . . . . . . . . . . . . . . . . . . . 69

    4.3.1. La pizarra . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    4.3.2. Las fuentes de conocimiento . . . . . . . . . . . . . . . . 73

    4.3.2.1. Precondiciones . . . . . . . . . . . . . . . . . . 73

    4.3.2.2. Cuerpo . . . . . . . . . . . . . . . . . . . . . . 75

    4.3.3. El control . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    4.3.3.1. Punto de atencin . . . . . . . . . . . . . . . . 78

    4.3.3.2. Planificacin de precondiciones . . . . . . . . . 79

    4.3.3.3. Duracin del ciclo de control . . . . . . . . . . 80

    4.3.3.4. Consideraciones de finalizacin . . . . . . . . . 80

    4.3.3.5. Codificacin de la estrategia de control . . . . . 81

    4.3.4. Caractersticas del entorno . . . . . . . . . . . . . . . . . 81

    4.4. Ventajas e inconvenientes del modelo de pizarra . . . . . . . . . . 824.5. Relacin con otros modelos y disciplinas . . . . . . . . . . . . . . 84

    4.5.1. Relacin con la ingeniera del software . . . . . . . . . . 84

    4.5.2. Relacin con los sistemas de produccin . . . . . . . . . . 85

    4.5.3. Relacin con la programacin orientada a objetos . . . . . 864.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    5. Los sistemas de pizarra 89

  • VIII NDICE GENERAL

    5.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    5.2. Un poco de historia . . . . . . . . . . . . . . . . . . . . . . . . . 91

    5.3. Sistemas de pizarra . . . . . . . . . . . . . . . . . . . . . . . . . 92

    5.3.1. HEARSAY-II: Control basado en agenda . . . . . . . . . 92

    5.3.2. HASP/SIAP: Control basado en eventos . . . . . . . . . . 96

    5.3.3. CRYSALIS: Control jerrquico . . . . . . . . . . . . . . 995.3.4. La arquitectura de pizarra dirigida por objetivos . . . . . . 1015.3.5. Planificacin incremental basada en modelos . . . . . . . 104

    5.3.6. ATOME: Control hbrido multi-etapa . . . . . . . . . . . 105

    5.3.7. Comparacin . . . . . . . . . . . . . . . . . . . . . . . . 106

    6. La arquitectura de pizarra BB1 109

    6.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

    6.2. La pizarra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    6.2.1. Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    6.2.2. Bases de conocimiento predefinidas . . . . . . . . . . . . 113

    6.3. Fuentes de conocimiento . . . . . . . . . . . . . . . . . . . . . . 114

    6.3.1. Registros de activacin de fuentes de conocimiento . . . . 116

    6.4. El control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    6.4.1. El ciclo de ejecucin . . . . . . . . . . . . . . . . . . . . 1186.4.1.1. El mdulo de ejecucin . . . . . . . . . . . . . 1196.4.1.2. El gestor de agenda . . . . . . . . . . . . . . . 120

    6.4.1.3. Planificador . . . . . . . . . . . . . . . . . . . 122

    6.4.2. Planes de control . . . . . . . . . . . . . . . . . . . . . . 122

    6.4.2.1. Funcionamiento de los planes de control . . . . 124

  • NDICE GENERAL IX

    II El problema 127

    7. El problema 129

    7.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

    7.2. Fuentes de indeterminismo . . . . . . . . . . . . . . . . . . . . . 129

    7.3. Algunas soluciones propuestas . . . . . . . . . . . . . . . . . . . 133

    7.4. Dos arquitecturas de pizarra en tiempo real . . . . . . . . . . . . 135

    III Arquitectura propuesta 141

    8. Introduccin 143

    8.1. Gua del lector . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    9. Descripcin general 147

    9.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

    9.2. Organizacin de la arquitectura . . . . . . . . . . . . . . . . . . . 149

    9.3. Funcionamiento del sistema . . . . . . . . . . . . . . . . . . . . 151

    9.4. Evolucin de las tareas en el sistema . . . . . . . . . . . . . . . . 153

    9.5. Modificaciones fundamentales respecto a una arquitectura de pi-zarra convencional . . . . . . . . . . . . . . . . . . . . . . . . . 155

    10. Planificacin de tareas 157

    10.1. Tipos de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

    10.2. Modelo de las tareas de tiempo real crticas . . . . . . . . . . . . 159

    10.3. Mecanismo de planificacin . . . . . . . . . . . . . . . . . . . . 162

    10.3.1. El gestor de tiempos de tareas . . . . . . . . . . . . . . . 167

    10.3.2. El planificador de tareas . . . . . . . . . . . . . . . . . . 172

  • X NDICE GENERAL

    10.3.2.1. El algoritmo EDF-MTR . . . . . . . . . . . . . 172

    10.3.3. Evolucin de las tareas . . . . . . . . . . . . . . . . . . . 176

    10.4. Tratamiento de tareas de tiempo real no crticas . . . . . . . . . . 178

    10.5. Mecanismo de cambios de modo . . . . . . . . . . . . . . . . . . 180

    10.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

    11. Modelo de pizarra determinista 187

    11.1. Fuentes de indeterminismo . . . . . . . . . . . . . . . . . . . . . 188

    11.2. Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

    12. Implementacin 197

    12.1. Implementacin del subsistema de ejecucin . . . . . . . . . . . . 19712.1.1. Modificaciones de estructuras de datos internas . . . . . . 197

    12.1.1.1. Fuentes de conocimiento . . . . . . . . . . . . 198

    12.1.1.2. KSARs . . . . . . . . . . . . . . . . . . . . . . 200

    12.1.1.3. Estrategias . . . . . . . . . . . . . . . . . . . . 202

    12.1.1.4. Nuevos elementos de la pizarra . . . . . . . . . 202

    12.1.2. El gestor de tiempos de tareas . . . . . . . . . . . . . . . 202

    12.1.2.1. La KS de ajuste de tiempos genrica . . . . . . 20412.1.2.2. Utilizacin de perfiles de prestaciones . . . . . 205

    12.1.3. El planificador de tareas . . . . . . . . . . . . . . . . . . 206

    12.1.3.1. Operaciones adicionales . . . . . . . . . . . . . 207

    12.1.3.2. Ejecucin del planificador de tareas . . . . . . . 20912.1.4. Tratamiento de tareas de tiempo real no crticas . . . . . . 210

    12.1.5. Mecanismo de cambios de modo . . . . . . . . . . . . . . 211

    12.1.5.1. El mecanismo de cambios de modo genrico . . 212

  • NDICE GENERAL XI

    12.2. Implementacin del subsistema de control . . . . . . . . . . . . . 213

    12.3. Implementacin del subsistema de pizarra . . . . . . . . . . . . . 214

    12.3.1. Detalles de implementacin . . . . . . . . . . . . . . . . 214

    12.3.2. Estructura en memoria de la pizarra . . . . . . . . . . . . 217

    12.4. Arquitectura hardware . . . . . . . . . . . . . . . . . . . . . . . 219

    12.4.1. Plataforma basada en ordenadores personales . . . . . . . 220

    12.4.2. Plataforma especfica . . . . . . . . . . . . . . . . . . . . 223

    13. Evaluacin y conclusiones 227

    13.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

    13.2. Evaluacin del algoritmo EDF-MTR . . . . . . . . . . . . . . . . 228

    13.3. Evaluacin del oportunismo del sistema . . . . . . . . . . . . . . 231

    13.3.1. Evaluacin del tiempo de atencin a eventos . . . . . . . 232

    13.4. Ejemplo de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . 23713.4.1. Presentacin del ejemplo . . . . . . . . . . . . . . . . . . 23713.4.2. Configuracin 1: Mejora en la reactividad del sistema . . . 238

    13.4.2.1. Escenario 1: Vehculo parado delante . . . . . . 241

    13.4.2.2. Escenario 2: Vehculo a una velocidad menordelante . . . . . . . . . . . . . . . . . . . . . . 244

    13.4.3. Configuracin 2: Tareas de tiempo real crticas . . . . . . 246

    13.4.3.1. Escenario 3: Vehculo parado delante con tareascrticas . . . . . . . . . . . . . . . . . . . . . . 249

    13.4.3.2. Escenario 4: Vehculo a una velocidad menordelante con tareas crticas . . . . . . . . . . . . 249

    13.4.4. Configuracin 3: Tareas con computacin imprecisa . . . 250

    13.4.5. Configuracin 4: Cambios de modo . . . . . . . . . . . . 256

  • XII NDICE GENERAL

    13.4.6. Configuracin 5: Tareas de tiempo real no crticas . . . . . 258

    13.4.7. Consideraciones finales . . . . . . . . . . . . . . . . . . . 260

    13.5. Comparacin con otras arquitecturas . . . . . . . . . . . . . . . . 264

    13.5.1. Resumen comparativo . . . . . . . . . . . . . . . . . . . 268

    13.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

    IV Conclusiones 275

    14. Conclusiones y trabajo futuro 27714.1. Aportaciones de la tesis . . . . . . . . . . . . . . . . . . . . . . . 277

    14.2. Lneas futuras de trabajo . . . . . . . . . . . . . . . . . . . . . . 279

    V Apndices 281

    A. Fuentes de conocimiento de los ejemplos 283A.1. Configuracin 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

    A.2. Configuracin 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

    A.3. Configuracin 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

    A.4. Configuracin 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    A.5. Configuracin 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    B. Diagramas de Gantt 295

    C. Notacin 297

    Bibliografa 299

  • NDICE GENERAL XIII

    ndice de materias 313

  • Lista de Figuras

    1.1. Clasificacin de sistemas . . . . . . . . . . . . . . . . . . . . . . 7

    2.1. Caracterizacin de una tarea de tiempo real . . . . . . . . . . . . 16

    2.2. Tipos de tareas de tiempo real . . . . . . . . . . . . . . . . . . . 18

    3.1. Un algoritmo anytime para el problema del viajante (TSP) . . . . 463.2. Prestaciones del algoritmo TSP . . . . . . . . . . . . . . . . . . . 47

    4.1. Organizacin bsica de un sistema de pizarra . . . . . . . . . . . 62

    4.2. Modelo bsico de un sistema de pizarra con control. . . . . . . . . 64

    4.3. Modelo de pizarra para el problema de los koalas. . . . . . . . . . 69

    5.1. Algunos de los primeros sistemas de pizarra y sus relaciones. . . . 92

    5.2. Arquitectura basada en agenda del sistema Hearsay-II. . . . . . . 93

    5.3. Ciclo bsico de control de Hearsay-II. . . . . . . . . . . . . . . . 94

    5.4. Arquitectura basada en eventos del sistema HASP. . . . . . . . . . 97

    5.5. Ciclo bsico de control de HASP. . . . . . . . . . . . . . . . . . . 98

    5.6. Arquitectura de control jerrquico del sistema Crysalis. . . . . . . 1005.7. Ciclo bsico de control de Crysalis. . . . . . . . . . . . . . . . . 101

    5.8. Arquitectura de pizarra dirigida por objetivos. . . . . . . . . . . . 1025.9. Ciclo bsico de la arquitectura dirigida por objetivos. . . . . . . . 103

    XV

  • XVI LISTA DE FIGURAS

    6.1. Arquitectura del sistema BB1. . . . . . . . . . . . . . . . . . . . 110

    6.2. Ciclo de control del sistema BB1. . . . . . . . . . . . . . . . . . 119

    6.3. Ejemplo de plan de control de BB1. . . . . . . . . . . . . . . . . 126

    9.1. Subsistemas de la arquitectura propuesta. . . . . . . . . . . . . . 150

    9.2. Evolucin de una tarea crtica. . . . . . . . . . . . . . . . . . . . 153

    9.3. Evolucin de una tarea no crtica. . . . . . . . . . . . . . . . . . . 154

    10.1. Ejecucin del ejemplo 10.2 segn el modelo de Audsley. . . . . . 16510.2. Mecanismo de planificacin de tareas. . . . . . . . . . . . . . . . 166

    10.3. Ejecucin del ejemplo 10.4 utilizando EDF. . . . . . . . . . . . . 17510.4. Ejecucin del ejemplo 10.4 utilizando EDF-MTR. . . . . . . . . . 17510.5. Evolucin de tareas. . . . . . . . . . . . . . . . . . . . . . . . . . 177

    10.6. Mecanismo de tratamiento de tareas de tiempo real no crticas. . . 180

    10.7. Mecanismo de planificacin de tareas con cambios de modo. . . . 183

    12.1. Valores de los atributos para diferentes tipos de KSs. . . . . . . . 201

    12.2. Organizacin en memoria de la pizarra. . . . . . . . . . . . . . . 218

    12.3. Plataforma hardware basada en PCs . . . . . . . . . . . . . . . . 221

    12.4. Estructura de RT-Linux . . . . . . . . . . . . . . . . . . . . . . . 222

    12.5. Plataforma especfica . . . . . . . . . . . . . . . . . . . . . . . . 223

    12.6. Direccionamiento de memoria en la plataforma hardware . . . . . 225

    13.1. Evaluacin del algoritmo EDF-MTR para una carga crtica del 50 %.229

    13.2. Evaluacin del algoritmo EDF-MTR para una carga crtica del 70 %.230

    13.3. Evaluacin del algoritmo EDF-MTR. para una carga crtica del 90 %230

  • LISTA DE FIGURAS XVII

    13.4. Tamao medio de la cola de eventos sin procesar para tasas entre10 y 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

    13.5. Tamao mximo de la cola de eventos sin procesar para tasas entre10 y 100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

    13.6. Tamao medio de la cola de eventos sin procesar para tasas entre100 y 500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

    13.7. Tamao mximo de la cola de eventos sin procesar para tasas entre100 y 500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

    13.8. Configuracin del sensor lser del automvil . . . . . . . . . . . . 238

    13.9. Configuracin de sensores activos y actuadores del automvil . . . 240

    13.10.Escenario 1: Vehculo parado delante . . . . . . . . . . . . . . . . 242

    13.11.Escenario 2: Vehculo a velocidad menor delante . . . . . . . . . 245

    13.12.Evolucin de la velocidad y la distancia en el escenario 2 . . . . . 245

    13.13.Configuracin de sensores pasivos y actuadores del automvil . . 247

    13.14.Evolucin de la velocidad y la distancia en el escenario 4 . . . . . 250

    13.15.Funcionamiento tpico de un sensor lser . . . . . . . . . . . . . . 251

    13.16.Incertidumbre en la interpretacin de la lectura del sensor . . . . . 252

    13.17.Vehculo con varios sensores . . . . . . . . . . . . . . . . . . . . 252

    B.1. Ejemplo 1 de diagrama de Gantt . . . . . . . . . . . . . . . . . . 296B.2. Ejemplo 2 de diagrama de Gantt . . . . . . . . . . . . . . . . . . 296

  • Lista de Tablas

    3.1. Distribucin del perfil de prestaciones del algoritmo TSP . . . . . 47

    11.1. Fuentes de indeterminismo en operaciones en la pizarra . . . . . . 190

    13.1. Cargas administrativas del algoritmo EDF-MTR . . . . . . . . . . 231

    13.2. Tiempos medios de atencin a eventos . . . . . . . . . . . . . . . 236

    13.3. Tiempo mximo de atencin a un evento . . . . . . . . . . . . . . 236

    13.4. Resultados obtenidos para el escenario 1 a 100 Km/h. . . . . . . . 242

    13.5. Resultados obtenidos para el escenario 1 a 120 Km/h. . . . . . . . 243

    13.6. Metros necesarios para detenerse en el escenario 1 a 120 Km/h. . . 243

    13.7. Caractersticas de las tareas de la configuracin 2 . . . . . . . . . 248

    13.8. Caractersticas de las tareas de la configuracin 3 . . . . . . . . . 253

    13.9. Resumen comparativo de caractersticas de sistemas . . . . . . . . 270

    XIX

  • Lista de Ejemplos2.1. Inversin de prioridad . . . . . . . . . . . . . . . . . . . . . . . . 34

    3.1. Resolucin del problema del viajante (TSP) mediante un algorit-mo interrumpible . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    3.2. Resolucin del problema del viajante (TSP) mediante mltiplesmtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    4.1. Resolucin de un puzzle mediante el modelo de pizarra . . . . . . 664.2. Buscar koalas en Australia . . . . . . . . . . . . . . . . . . . . . 67

    6.1. Ejemplo de plan de control de BB1 . . . . . . . . . . . . . . . . . 12610.1. Ejecucin de tareas segn el modelo de Audsley . . . . . . . . . . 16310.2. Problemas en la ejecucin de tareas opcionales en el modelo de

    Audsley . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16410.3. Funcionamiento del mecanismo de reparto de tiempos propuesto . 17010.4. Conjunto de tareas crticas a planificar con EDF-MTR . . . . . . . 17511.1. Ejemplo de jerarqua IS-A . . . . . . . . . . . . . . . . . . . . . 19412.1. Reparto de tiempos entre tareas . . . . . . . . . . . . . . . . . . . 205

    XXI

  • Parte I

    Introduccin y conceptos de base

    1

  • Captulo 1

    Introduccin y objetivos

    1.1. Introduccin

    En casi cualquier libro de introduccin a la programacin podemos encontrarel siguiente axioma:

    Los ordenadores hacen exactamente aquello que se les dice y nadams.

    Este es un aspecto fundamental de nuestra relacin con los ordenadores en elque rara vez nos paramos a pensar. Y, la mayora de las veces, no nos importa; nossatisface tener estos sirvientes obedientes, aun cuando carecen de iniciativa. Noobstante, para muchas aplicaciones de importancia, la obediencia no es suficiente:necesitamos sistemas que puedan decidir por s mismos qu hacer ante cualquiersituacin que se les presente. Consideremos una sonda espacial en una misin alos planetas ms alejados del sistema solar. Dicha sonda no puede ser controladaen tiempo real; las leyes de la fsica lo impiden. Debe, por tanto, actuar autno-mamente. Tampoco se puede preplanificar completamente la misin: en todas lasmisiones espaciales, incluyendo las ms cortas, es inevitable la aparicin de even-tos imprevistos. Por tanto, la sonda debe ser capaz de actuar de manera inteligentepara conseguir sus objetivos. Es decir, debe decidir por s misma qu hacer en elcaso de que ocurra alguna circunstancia imprevista. Adems, no puede estar in-definidamente decidiendo qu hacer: las decisiones se deben tomar a tiempo paraque sean tiles.

    Aunque este ejemplo es, quizs, algo extremo, los requisitos de autonoma ycomportamiento inteligente no lo son. Hoy en da se considera que los sistemas

    3

  • 4 Introduccin y objetivos

    autnomos inteligentes son la solucin ms apropiada para muchos e importantesproblemas software. Por elegir un ejemplo actual, los programas que atraviesanInternet en bsqueda de algn tipo de informacin estn sujetos a los mismosrequisitos bsicos que nuestra sonda espacial: no es deseable ni factible controlarde manera directa dichos programas, y la naturaleza dinmica de Internet haceimposible preplanificar una bsqueda con exactitud.

    Podemos encontrar otros muchos ejemplos donde se dan los requisitos queaparecen en los descritos:

    Capacidad de actuar autnomamente.

    Necesidad de respuesta en un tiempo adecuado.

    Capacidad de actuar inteligentemente.

    Con capacidad de autonoma nos referimos a que el sistema debe operar sin laintervencin o control de humanos o de otros sistemas.

    Las necesidades de respuesta en un tiempo adecuado, son comunes a cual-quier sistema software. Estas necesidades pueden variar, en funcin del problema,desde unas necesidades de tiempo de respuesta medio adecuado para satisfacerlas expectativas del usuario (por ejemplo, en el buscador de informacin en In-ternet, un tiempo de respuesta medio de una semana no ser adecuado, pero nohabr grandes diferencias en cuanto al correcto funcionamiento del programa sitiene un tiempo medio de respuesta de 20 o de 25 minutos), hasta unas necesi-dades de respuesta en un tiempo fijo crticas1 (por ejemplo, en el caso de nuestrasonda espacial: desde que detecta que un meteorito se dirige directamente haciaella hasta que toma las medidas oportunas para evitarlo debe pasar un tiempo losuficientemente pequeo como para que no se produzca la colisin y se destruyala sonda).

    La capacidad de actuar inteligentemente podr ser necesaria porque, o bien elproblema a resolver, y por tanto su solucin, o bien el entorno con el que interactael sistema son lo suficientemente complejos como para no poder especificarlostotalmente. Adems el entorno con el que interacta el sistema puede ser muycambiante (dinmico) siendo imposible predecir todos sus posibles estados.

    A un sistema que cumple, al menos en cierta medida, los requisitos anterioresse le ha denominado Sistema Inteligente Adaptativo [HR95, HRPL+95]. La ba-se de estos sistemas est en el campo de investigacin denominado Inteligencia

    1No cumplirlas tiene consecuencias graves.

  • Introduccin 5

    Artificial en Tiempo Real [LCS+88, GL94, MHA+95], que surgi de la con-vergencia de las demandas de los sistemas de inteligencia artificial con las de lossistemas de tiempo real.

    Por una parte, los Sistemas de Tiempo Real interactan con entornos realesen los que se deben producir respuestas en instantes apropiados para dichos domi-nios o se considerar que el sistema falla. Por ejemplo, un vehculo autnomo queopere en un entorno real necesita un sistema de control que responda lo suficien-temente rpido para evitar colisiones con obstculos. Los sistemas de tiempo real,en un principio, estaban diseados para operar en entornos bien caracterizados yrelativamente simples. En estos entornos es suficiente disponer de un conjunto detareas que se repitan peridicamente y que tienen tiempos de ejecucin y patronesde llegada al sistema conocidos. El objetivo principal en la construccin de estetipo de sistemas es planificar dichas tareas y asegurar que cumplirn sus plazos.Se han desarrollado un conjunto de tcnicas para especificar dichas tareas y paraconstruir planificaciones predecibles para garantizar que cumplirn sus plazos deejecucin. Una vez desarrolladas estas tcnicas, se ha tendido a extender este tipode sistemas a aplicaciones y entornos cada vez ms complejos. En estas aplicacio-nes y entornos complejos, dinmicos y no completamente especificados debidoa su complejidad, las teoras anteriormente citadas, basadas en disponer de unaespecificacin completa de las caractersticas de las tareas y del entorno con elque interactan ya no son vlidas. Es necesario que estos nuevos sistemas dispon-gan de capacidades como: adaptacin al medio con el que interactan, procesosde razonamiento para planificar las tareas a realizar ante situaciones no previstaso flexibilidad en su comportamiento. Todas estas capacidades han sido tratadasampliamente dentro del campo de la inteligencia artificial.

    Por otra parte, los Sistemas de Inteligencia Artificial intentan emular las di-ferentes capacidades inteligentes de los humanos, incluyendo su capacidad pa-ra resolver problemas de razonamiento complejos al mismo tiempo que operanen dominios dinmicos y no completamente especificados. Tradicionalmente, lossistemas de inteligencia artificial se han desarrollado sin prestar mucha atencin ala limitacin de recursos. No obstante, a medida que la aplicacin de estos siste-mas ha pasado de los laboratorios de investigacin a aplicaciones del mundo real,tambin se ven sometidos a las restricciones temporales del entorno en el queoperan. Los primeros esfuerzos para construir sistemas de inteligencia artificialque cumplieran restricciones temporales se basaron en acelerar la ejecucin delos mtodos de inteligencia artificial existentes de tal manera que cumplieran losrequisitos temporales en una serie de escenarios de prueba. Sin embargo, compor-tamientos y cambios en el entorno que no se hayan contemplado en los escenariosde prueba pueden seguir dando lugar a fallos, ya que no se ha realizado una prueba

  • 6 Introduccin y objetivos

    rigurosa de que estos sistemas cumplirn sus requisitos temporales en cualquiercircunstancia. Como indica Stankovic [Sta88], este tipo de prestaciones no sonvlidas para sistemas de tiempo real crticos2. En vez de ello, se deben utilizarlas tcnicas de diseo rigurosas desarrolladas dentro del campo de los sistemas detiempo real para garantizar que el sistema cumplir sus plazos temporales, aun enlos escenarios de caso peor.

    Es decir, las tcnicas de diseo de sistemas de tiempo real y de sistemas deinteligencia artificial deben confluir debido a las necesidades de las aplicacionesreales. Se deben combinar los mtodos que permiten garantizar prestaciones detiempo real con las tcnicas de planificacin, resolucin de problemas y mecanis-mos de adaptacin de la inteligencia artificial para construir sistemas inteligentesy flexibles que puedan planificar dinmicamente sus propios comportamientos ygarantizar que esos comportamientos cumplen su plazos temporales.

    Estos sistemas tienen aplicacin en diversos mbitos como, por ejemplo, ro-bots mviles autnomos, sistemas de control (de pacientes mdicos, de plantasnucleares, de trfico areo, etc.) o robots software.

    Es muy comn encontrar el trmino agente como sinnimo de sistema inte-ligente adaptativo. Sin embargo, vamos a utilizar este segundo trmino, ya queel trmino agente es utilizado con significados muy diferentes en la literaturacientfica. Incluso podemos encontrar el trmino agente para referirse a cualquiersistema sin ms requisitos que la capacidad de actuar autnomamente, es decir,cualquier sistema no interactivo, distinguiendo aquellos sistemas que presentancaractersticas tpicas de la inteligencia artificial con el trmino agentes inteligen-tes.

    En esta tesis respetaremos el origen histrico del trmino agente, que surgeinicialmente dentro del campo de investigacin de la Inteligencia Artificial Dis-tribuida para referirse a sistemas que, adems de las caractersticas anteriormenteenunciadas, cumplen las de sociabilidad (capacidad de comunicacin con otrosagentes) y benevolencia (siempre que le sea posible, un agente intentar ayudar aotros agentes) [WJ95] [Nwa96]. Es decir, debe cooperar con otros agentes en laresolucin de problemas.

    Con el fin de identificar claramente el campo de investigacin en el que nosvamos a centrar en esta tesis (los sistemas inteligentes adaptativos), en la figura 1.1se presenta una posible clasificacin de sistemas, que es la que vamos a seguir enesta tesis, en funcin de los campos de investigacin que tienen por base. Esta

    2Sistemas en los que no realizar la accin adecuada y a tiempo puede suponer prdida de vidaso costes econmicos inaceptablemente altos.

  • Objetivos de la tesis 7

    no es una clasificacin universalmente admitida, ya que, como se ha indicadoanteriormente, no existe un acuerdo en la comunidad cientfica sobre el uso dealgunos de los trminos que en ella aparecen.

    Figura 1.1: Clasificacin de sistemas

    1.2. Objetivos de la tesisEntre otros, dos de los problemas fundamentales que se plantean dentro de la

    disciplina de la inteligencia artificial en tiempo real son los siguientes:

    1. Mientras las tareas tpicas de inteligencia artificial tienen un tiempo deejecucin muy variable y difcilmente predecible, los sistemas de tiemporeal se basan en tareas con tiempos de ejecucin estrechamente predecibles[Sch91, PABS91, Syc93]. Esta contradiccin hace difcil combinar sistemasde tiempo real con razonamientos inteligentes.

    2. Es necesario el diseo de modelos y arquitecturas que soporten de maneraadecuada este tipo de sistemas.

  • 8 Introduccin y objetivos

    El primero de los problemas es de ndole fundamentalmente terico, mien-tras que el segundo contempla aspectos prcticos de cara a la implementacin deeste tipo de sistemas: la definicin de arquitecturas que permitan construir sobreellas sistemas prcticos utilizando las tcnicas tericas anteriores junto con otrosconceptos como puede ser la teora de planificacin de tareas en tiempo real.

    En el campo de la inteligencia artificial en tiempo real se suele utilizar una de-finicin menos estricta del trmino tiempo real que la utilizada normalmente. Unadefinicin bastante comn es que el sistema obtenga estadsticamente (es decir,en media) una respuesta adecuada en el tiempo requerido, pero no se garantiza uncomportamiento temporal determinista para ninguna tarea concreta.

    Obviamente, esta definicin de tiempo real no es vlida para aquellas apli-caciones en las que existan tareas de tipo crtico en cuanto a su comportamientotemporal, ya que el no cumplimiento estricto del plazo de ejecucin de estas tareasdara lugar a situaciones no deseadas.

    Por tanto tendremos dos tipos de escenarios muy diferentes:

    No existencia de tareas crticas. En este tipo de escenarios nos interesarconseguir una respuesta de la mayor calidad posible, teniendo en media uncomportamiento temporal adecuado. Un ejemplo tpico sera el buscador deinformacin en Internet comentado anteriormente, donde no existira nin-guna tarea con necesidades de ejecucin en tiempo real crticas, pero s sedesea un comportamiento temporal medio adecuado.

    Existencia de tareas crticas. En este tipo de escenarios existirn una seriede tareas con necesidades estrictas de ejecucin en un tiempo determinado(ya que su no cumplimiento tendra consecuencias graves), aun a costa deque la calidad de la respuesta no sea ptima. Un ejemplo de este tipo desistemas sera el de la sonda espacial comentado en la introduccin, don-de la no ejecucin de determinadas tareas antes de un tiempo determinadosupondra su destruccin.

    El objetivo principal de esta tesis es definir una arquitectura para la construc-cin de Sistemas Inteligentes Adaptativos con requisitos de tiempo real estrictos ocrticos, es decir para el desarrollo de aplicaciones vlidas para escenarios de esteltimo tipo.

    Podemos clasificar los sistemas de inteligencia artificial en tiempo real en trestipos bsicos [MDS93, LHR94, MHA+95] aunque, lgicamente, muchas imple-mentaciones reales se encuentran, de alguna manera, entre varias categoras.

  • Objetivos de la tesis 9

    1. Introduccin de inteligencia en un Sistema de Tiempo Real: Se basan enla incorporacin de tareas de inteligencia artificial en un sistema de tiemporeal convencional. Para ello, normalmente, se limita la funcionalidad de lastareas de inteligencia artificial obligndolas a cumplir lmites temporales.Para ello se utilizan una serie de tcnicas que se comentarn en el captulo 3.

    2. Introduccin de capacidades de tiempo real en un Sistema de Inteligen-cia Artificial: Se basan en extender un sistema de inteligencia artificial paradotarle de comportamiento en tiempo real. Una forma de conseguirlo es su-poner que el sistema va a ser deliberativo la mayor parte del tiempo, y slode vez en cuando se va a interrumpir para proporcionar una respuesta entiempo real. El problema suele ser que es la parte de inteligencia artificial laencargada de detectar la situacin que requiere una accin en tiempo real, ydetectar esa situacin puede suponer una bsqueda no limitada en el tiempo[MHA+95].

    3. Sistemas cooperativos entre Inteligencia Artificial y Tiempo Real: Sebasan en combinar dos subsistemas concurrentes: un subsistema de inteli-gencia artificial y otro de tiempo real, que deben cooperar para alcanzar losobjetivos del sistema. El subsistema de inteligencia artificial puede utilizar,sin estar atado al cumplimiento de unos lmites temporales, toda la potencia-lidad de las tcnicas de inteligencia artificial para generar planificaciones deconjuntos de tareas que cumplen sus lmites temporales y se van a ejecutaren el subsistema de tiempo real.

    La arquitectura que se propone en esta tesis pertenecer a este ltimo tipo.Para su definicin tomaremos como base un modelo de arquitectura para sistemasde inteligencia artificial, que ha demostrado su validez para la resolucin de pro-blemas complejos, y que incluso se ha utilizado como base para la definicin dearquitecturas para sistemas inteligentes adaptativos con requisitos de tiempo realno crticos: el modelo de pizarra [CL92, Cor91, JDB89].

    El primer objetivo dentro de esta tesis ser identificar aquellos aspectos de lasarquitecturas de pizarra existentes, que impiden su utilizacin para la creacin desistemas con requisitos de tiempo real crticos.

    Una vez identificados estos problemas, se propondrn soluciones a los mis-mos para, a continuacin, proponer una arquitectura completa que implementedichas soluciones, apartndose lo menos posible del modelo original de pizarra.La definicin de esta arquitectura es el objetivo principal de la tesis.

  • 10 Introduccin y objetivos

    Por ltimo se realizar un anlisis de la validez de la arquitectura propuestapara entornos de tiempo real crticos, realizando un anlisis de las soluciones pro-puestas y una comparacin con otros sistemas propuestos para este mismo tipo deproblemas.

    1.3. Estructura de la memoria

    Esta tesis se divide en cinco partes:

    La parte I sirve de introduccin y presenta el estado del arte en aquellastcnicas que se van a utilizar en la tesis. Se divide en seis captulos:

    En el captulo 1 se presenta la motivacin, objetivos y estructura de latesis.

    El captulo 2 introduce los conceptos bsicos de planificacin utiliza-dos en sistemas de tiempo real, y los diferentes tipos de algoritmosde planificacin utilizados hoy en da, centrndonos a continuacin enaquellos algoritmos que tienen relevancia para la tesis.

    El captulo 3 describe algunos de los temas de investigacin ms re-levantes dentro del campo de la inteligencia artificial en tiempo real,presentndose algunas de las tcnicas propuestas para conjugar los ob-jetivos dispares de la inteligencia artificial y de las tcnicas de tiemporeal y, a continuacin, algunas arquitecturas que, utilizando dichas tc-nicas, pretenden proporcionar un entorno vlido para la ejecucin desistemas inteligentes en tiempo real.

    En el captulo 4 se describe el modelo de pizarra, as como el entornode pizarra. Entendemos por entorno de pizarra una descripcin a unnivel menos abstracto que el del modelo.

    En el captulo 5 se describen y comparan varios sistemas basados enel modelo de pizarra que aporten alguna idea novedosa.

    En el captulo 6 se realiza una descripcin detallada de la arquitecturade pizarra BB1, que es la que se toma como base para la arquitecturaque se propone en esta tesis.

    La parte II esta formada por un captulo en el que se identifican y presentanlos principales problemas que presentan las arquitecturas de pizarra con-vencionales, como es BB1, para su utilizacin en entornos con requisitosde tiempo real crticos. Es decir, se identifican los problemas que se van aintentar resolver en la tesis.

  • Estructura de la memoria 11

    La parte III presenta la arquitectura que se propone en esta tesis y, por tan-to, es el principal resultado del trabajo realizado. Est organizada en seiscaptulos:

    El captulo 8 es una introduccin en la que se presentan los objetivosperseguidos y una descripcin ms detallada de la que aqu se presentadel contenido de los dems captulos de esta parte de la tesis.

    Los captulos 9, 10 y 11 se dedican a describir diferentes aspectos deldiseo de la arquitectura.

    En el captulo 12 se presentan aquellos aspectos de la implementacinde la arquitectura que se considera pueden ayudar a comprender sudiseo y funcionamiento.

    El captulo 13 presenta una evaluacin, tanto desde el punto de vistacuantitativo como cualitativo, de la arquitectura, as como las princi-pales conclusiones obtenidas.

    La parte IV contiene un capitulo que recoge las principales contribucionesde la tesis, as como algunas de las posibles lneas de trabajo futuras.Por ltimo, la parte V contiene tres apndices:

    En el apndice A se describen las tareas que componen los ejemplosque se utilizan a lo largo de la presentacin de la arquitectura propues-ta.

    En el apndice B se describe la notacin utilizada en la tesis para repre-sentar los diagramas de evolucin temporal de la ejecucin de tareasde tiempo real.

    El apndice C contiene un resumen de la notacin empleada en lamemoria.

  • Captulo 2

    Planificacin en sistemas de tiemporeal

    2.1. Introduccin

    Los sistemas de tiempo real se definen como aquellos sistemas en los que sucorreccin depende, no slo de los resultados lgicos, sino tambin del momentoen que se producen dichos resultados.

    Esta caracterstica se debe a que estos sistemas interactan con un entorno fsi-co: sus entradas reflejan eventos ocurridos en su entorno, y sus salidas se traducenen efectos sobre dicho entorno. Estos resultados se deben producir, por tanto, enmomentos en los que an tengan validez dentro de ese entorno sobre el que elsistema est actuando.

    Segn lo que se acaba de afirmar, se podra argumentar que todos los sistemasson de tiempo real, ya que tienen limitaciones en sus respuestas temporales. Sinembargo, podemos encontrar diferencias sustanciales en esas limitaciones tempo-rales. Vemoslo con algunos ejemplos:

    Cuando una persona utiliza un procesador de textos, espera que el progra-ma responda a los comandos que introduce en un tiempo razonable (porejemplo, 1 segundo) o el utilizarlo se puede convertir en una tortura.Un sistema de bases de datos para la gestin de reservas de una compaaarea debe dar una respuesta en cada uno de sus terminales distribuidosgeogrficamente en las diversas agencias. Estas respuestas se deben dar enun tiempo razonable (unos pocos segundos), ya que los usuarios de dichos

    13

  • 14 Planificacin en sistemas de tiempo real

    terminales estarn atendiendo a clientes, a los que se les debe confirmar laexistencia de billetes sin que tengan que esperar un tiempo excesivo.

    Un sistema de control de una central nuclear debe tomar las medidas opor-tunas ante un calentamiento anormal del ncleo de la central antes de queese proceso de calentamiento lleve a una situacin incontrolable que daralugar a una reaccin en cadena irreversible en el ncleo.

    Es obvio que la diferencia sustancial est en que los dos primeros ejemplos unretraso espordico en el cumplimiento de los requisitos temporales es admisible,mientras que en el ltimo ejemplo no. En los dos primeros ejemplos, un retraso es-pordico (por ejemplo, que en el procesador de textos el 95 % de las respuestas seproduzca en menos de un segundo, y el 5 % no) simplemente supondra una ligeradisminucin en la productividad del usuario. En el ltimo ejemplo, un slo retrasoconllevara consecuencias fatales. Esta diferencia es debida a que mientras en losdos primeros ejemplos el entorno con el que interacta el sistema (una persona)puede esperar a que se produzca la respuesta, en el ltimo el entorno evolucionaen el tiempo independientemente del sistema. Es decir, en los dos primeros ca-sos el entorno se adapta a la evolucin temporal del sistema, y en el ltimo es elsistema el que se debe adaptar a la evolucin temporal del entorno.

    Algunos autores se refieren a los sistemas del primer tipo como sistemas detiempo real no crticos (soft real-time systems) y a los del segundo como sistemasde tiempo real crticos (hard real-time systems) [Lap93]. En esta tesis utilizaremosel trmino Sistema de Tiempo Real para referirnos a Sistemas de Tiempo RealCrticos.

    Suelen ser sistemas de propsito especial que constituyen el subsistema decontrol de un sistema mayor en el que estn embebidos. Debido a sus caracters-ticas, normalmente requieren un alto grado de tolerancia a fallos.

    Ejemplos de este tipo de sistemas de tiempo real son sistemas de mando ycontrol, sistemas de control de procesos o sistemas de control de vuelo.

    Una gran parte de los sistemas actuales asumen que se dispone a priori de lamayor parte de la informacin sobre las caractersticas de las tareas a ejecutar ydel entorno con el que el sistema va a interactuar, y por tanto se basan en diseosestticos, lo que contribuye a su alto coste y poca flexibilidad. A medida que seconstruyen sistemas para problemas y entornos cada vez ms complejos se vuelvecada vez ms difcil disponer de esta informacin en el momento del diseo delsistema. Por tanto, los sistemas de tiempo real crticos deben evolucionar para serdinmicos y flexibles en su funcionamiento [SR90].

  • Introduccin 15

    Cuando existen actividades con restricciones temporales, como ocurre en lossistemas de tiempo real, el principal problema a resolver es planificar esas activi-dades para cumplir sus restricciones temporales. Esas actividades estarn forma-das por una o varias tareas1.

    Para realizar esta planificacin se utilizar un algoritmo de planificacin quedefiniremos como el conjunto de reglas que determinan qu tarea se debe ejecutaren cada instante [LL73]. Estos algoritmos deben tener en cuenta las necesidadesde recursos y tiempo de las tareas de tal manera que stas cumplan ciertos requi-sitos de prestaciones.

    La planificacin ha sido, quizs, el rea de investigacin en que ms trabajose ha realizado dentro del campo de los sistemas de tiempo real. Esto se debe aque el problema bsico en los sistemas de tiempo real es conseguir asegurar quelas tareas cumplirn sus restricciones temporales. La planificacin es, adems, unproblema conceptual y bien estructurado. Dada la gran cantidad de trabajo exis-tente en el rea de la planificacin, no daremos una panormica exhaustiva dedichos algoritmos2. En vez de ello, en este captulo presentaremos una categori-zacin de este trabajo en cuatro paradigmas, propuesta en [RS93], que cubren lasaproximaciones existentes a la planificacin, para a continuacin centrarnos enlos algoritmos de alguna relevancia para esta tesis.

    2.1.1. Caracterizacin de tareas

    En este apartado introduciremos la nomenclatura y los diferentes parmetrosque caracterizan a una tarea de tiempo real, y que utilizaremos en el resto de estatesis.

    Una tarea de tiempo real estar caracterizada por los siguientes parmetros(ver figura 2.1):

    Disparo: Instante a partir del cual la tarea est preparada para ejecutarse.

    Plazo: Instante en el que la tarea debe haber completado su ejecucin.

    Carga de trabajo: Tiempo que el procesador tardara en ejecutar sin inte-rrupcin la invocacin actual de la tarea.

    1denominaremos tarea a la unidad mnima de planificacin de un sistema.2El lector interesado puede consultar alguna de las muchas revisiones existentes, por ejem-

    plo [LLR82] o [GMS94].

  • 16 Planificacin en sistemas de tiempo real

    Disparo Plazo tiempo

    Carga de trabajoC

    Tiempo de servicio

    Disparo tiempo Disparo tiempo

    Prontitud

    PlazoPlazo

    Tardanza

    Figura 2.1: Caracterizacin de una tarea de tiempo real

    Carga de trabajo en el caso peor: Tiempo que el procesador tardara enejecutar sin interrupcin la tarea en el caso ms desfavorable en cuanto atiempo de ejecucin. (En la figura se representa con el smbolo C).Tiempo de servicio: Tiempo transcurrido desde el disparo de la tarea hastael final de su ejecucin actual.Tardanza: Retardo producido desde el plazo de la tarea hasta el final de suejecucin. A veces tambin se denomina retraso.Prontitud: Adelanto producido entre el final de la ejecucin de la tarea ysu plazo. Este valor a veces se representa como una tardanza negativa.

    En base a estos parmetros podemos realizar diversas clasificaciones de lastareas de tiempo real.

    Una primera clasificacin posible es la basada en la necesidad de cumplimien-to de su plazo por parte de las tareas. Se suele clasificar a las tareas de tiempo realen dos categoras [SR90]:

    Tareas de tiempo real crtico o estricto: deben cumplir siempre su plazo,porque, de lo contrario, los resultados pueden ser catastrficos. Es decir, suprontitud ha de ser siempre mayor o igual que cero.Por ejemplo, en un sistema de control de un automvil, el proceso encargadode inflar el airbag debe comportarse de tal manera que nunca pasen ms de

  • Introduccin 17

    2 ms. desde que se detecta una colisin hasta que se produce su respuesta.Si se supera ese lmite la respuesta del proceso tendr, obviamente, un valormuy negativo, pues el airbag se inflar cuando ya no es necesario.

    Tareas de tiempo real flexible: de no cumplir su plazo, la tarea sigue sien-do vlida, si bien la calidad del resultado va decreciendo con el tiempo. Esdecir, se acepta que en alguna de las ejecuciones de la tarea exista una tar-danza, pero a medida que aumenta el valor de la tardanza el resultado cadavez es menos til.Por ejemplo, en nuestro sistema de control de un automvil podemos te-ner un proceso que peridicamente compruebe la temperatura del agua delmotor y la muestre al conductor, por ejemplo cada 10 segundos. Si algunacomprobacin sufre un cierto retardo (hasta un cierto lmite) el ltimo valorde temperatura presentado ser prximo al valor real de la temperatura ac-tual. A medida que pase el tiempo la diferencia entre el valor presentado yel real puede ser cada vez mayor, y por tanto la utilidad del resultado cadavez ser menor.

    En muchas aplicaciones podemos encontrar otras dos categoras:

    Tareas de tiempo real firme: si no ha finalizado la ejecucin de la tarea cuan-do se cumple su plazo, se descarta la tarea sin producir ningn resultado, yaque a partir de ese momento el resultado no ser vlido. Es decir, en estetipo de tareas tambin se permite que en alguna de sus ejecuciones no secumpla el plazo, al igual que en las tareas flexibles.Por ejemplo en la transmisin de vdeo digital es mejor descartar una tramaque no llega a tiempo, o que llega con error, que retardar el sistema enespera de recibir la trama correcta. Descartar la trama slo produce un ruidomomentneo, mientras que el retardo supondra una desincronizacin de laseal.

    Tareas de tiempo real mixtas: este tipo de tareas poseern caractersticas dems de una de las categoras anteriores [BW96].El ejemplo que hemos dado antes para una tarea flexible, pertenecera enrealidad a este tipo, ya que como indicamos antes, la utilidad de la medidade la temperatura del agua del motor decrecera con el tiempo, pero a partirde un determinado momento en el que la temperatura puede haber subidotanto que podra daar el motor, el plazo se convierte en crtico. Diramosque la tarea tiene un plazo flexible de 10 segundos y un plazo crtico de,

  • 18 Planificacin en sistemas de tiempo real

    por ejemplo, 1 minuto (tiempo suficiente para que la temperatura del aguallegue a un valor que puede daar el motor).

    En la figura 2.2 se presenta la relacin entre el valor de la respuesta proporcio-nada y el cumplimiento del plazo para cada uno de estos cuatro tipos de tareas.

    PlazoDisparo

    tiempo

    Valorde la

    respuesta

    +100 %

    -100 %(a) Tarea estricta o crtica

    PlazoDisparo

    tiempo

    Valorde la

    respuesta

    +100 %

    -100 %

    PlazoDisparo

    tiempo

    Valorde la

    respuesta

    +100 %

    -100 %PlazoDisparo

    tiempo

    Valorde la

    respuesta

    +100 %

    -100 %(c) Tarea firme

    (b) Tarea flexible

    (d) Tarea mixta

    P2 P3

    Figura 2.2: Tipos de tareas de tiempo real

    En funcin de la relacin entre sus disparos, las tareas tambin se puedenclasificar en [Mok83]:

    Peridicas: La tarea se dispara repetidamente a intervalos constantes, a par-tir de una invocacin inicial. Estas tareas tendrn una caracterstica adicio-nal que es su periodo. En este tipo de tareas su plazo suele coincidir con elfinal de su periodo, es decir, con el momento de su siguiente disparo.

    Espordicas: La tarea se dispara de forma repetida, pero con un intervalode repeticin que no es constante, aunque se define una separacin mnimaentre disparos consecutivos.

    Aperidicas: La tarea se dispara a intervalos irregulares, es decir, sus dispa-ros ocurren en instantes arbitrarios.

  • Introduccin 19

    Las tareas peridicas y espordicas suelen tener plazos crticos, mientras quelas tareas aperidicas suelen tener plazos flexibles o, simplemente, la necesidadde proporcionar un determinado tiempo medio de respuesta.

    Para finalizar esta caracterizacin de las tareas de tiempo real, se debe indicarque adems de las restricciones temporales pueden aparecer otros tipos de restric-ciones, como pueden ser [SR88]:

    De recursos: indican qu recursos necesita utilizar cada tarea y cmo debeusarlos, de manera que no se viole la consistencia de dichos recursos.

    De precedencia: se dice que una tarea i precede a una tarea j (y se repre-senta por i j), si i debe terminar antes de que j comience.De importancia: es la medida de hasta qu punto es ms o menos crtico elcumplimiento del plazo de una tarea que el de otra. A veces tambin se de-nominan restricciones de conveniencia, prioridades o niveles de criticidad.Por ejemplo, en un sistema de control de una central nuclear tendrn unamayor importancia las tareas de las que dependa la estabilidad del ncleoque las que regulan el aire acondicionado del edificio.

    2.1.2. Mtricas de prestaciones en sistemas de tiempo real

    Las mtricas que guan las decisiones de planificacin dependen de las reasde aplicacin. La necesidad de minimizar la longitud de la planificacin prevaleceen sistemas estticos sin restricciones de tiempo real, y minimizar los tiempos derespuesta e incrementar las prestaciones (throughput) son las principales mtricasen sistemas dinmicos sin restricciones de tiempo real.

    No obstante, en los sistemas de tiempo real, tanto estticos como dinmicos, elobjetivo principal no es conseguir un rendimiento alto, sino conseguir cumplir lasrestricciones temporales de las tareas3. Esto introduce mtricas bastante diferentesde las de los sistemas que no son de tiempo real.

    Los dos objetivos principales de un algoritmo de planificacin para sistemasde tiempo real son:

    la predecibilidad, es decir, la capacidad de determinar el tiempo de res-puesta de cada tarea, con el fin de analizar, para un determinado conjunto

    3Un rendimiento alto es deseable, pero no a expensas de la predecibilidad [Raj91].

  • 20 Planificacin en sistemas de tiempo real

    de tareas, si el sistema ser capaz de cumplir los requisitos temporales dedichas tareas, y

    la flexibilidad (o adaptabilidad), tanto a cambios de estado (fallos y so-brecargas), como a cambios de especificaciones o de las condiciones delproblema o del entorno.

    La gran cantidad de mtricas que se han propuesto para sistemas de tiemporeal es indicativa de los variedad de sistemas de este tipo existentes, as como delos diversos tipos de requisitos impuestos sobre ellos. Esto hace que, a veces, seadifcil comparar diferentes algoritmos de planificacin. Otra dificultad provienedel hecho de que en la prctica aparecen tareas con diferentes tipos de carac-tersticas. Las tareas se pueden asociar con tiempos de cmputo, necesidades derecursos, niveles de importancia, relaciones de precedencia, requisitos de comuni-cacin, y, desde luego, requisitos temporales. Si una tarea es peridica, su periodoes importante; si es aperidica, su plazo es importante. Una tarea peridica puedetener un plazo para terminar que sea igual o distinto a su periodo. Ambos tipos detareas, peridicas y aperidicas pueden tener restricciones en cuanto al instante decomienzo de su ejecucin, etc.

    Algunas mtricas de prestaciones que se pueden considerar para sistemas detiempo real son las siguientes: En el caso esttico, se debe encontrar una planifi-cacin antes de comenzar la ejecucin del sistema que cumpla todos los plazos.Si existen varias planificaciones posibles, se utilizar una mtrica secundaria, talcomo maximizar la prontitud media, para elegir entre ellas. Si no existe esa pla-nificacin, se debe elegir una que minimice la tardanza media. En sistemas detiempo real dinmicos, dado que, en general, no se puede garantizar a priori quese cumplirn todos los plazos, se utiliza a menudo como mtrica maximizar elnumero de llegadas de tareas que cumplen sus plazos (tasa de garanta).

    A la hora de comparar y valorar diferentes algoritmos de planificacin se sue-le tomar como referencia el algoritmo de planificacin ptimo. Un algoritmo deplanificacin esttico se dice que es ptimo si, para cualquier conjunto de tareas,puede producir una planificacin que satisfaga las restricciones de las tareas siem-pre que cualquier otro algoritmo esttico pueda hacerlo; o, dicho en otras palabras,slo fracasara en el cumplimiento de un plazo cuando ningn otro algoritmo deplanificacin fuese capaz de cumplirlo. Un algoritmo dinmico se dice que es p-timo si puede producir una planificacin viable siempre que uno esttico con co-nocimiento previo de las caractersticas de las tareas pueda hacerlo. Un algoritmodinmico ptimo maximiza la tasa de garanta.

  • Paradigmas de planificacin 21

    2.1.3. Complejidad

    La variedad de mtricas de prestaciones, clases de planificacin y tipos derecursos de procesamiento utilizados por las tareas implica una gran variedad dealgoritmos de planificacin. Antes de entrar a ver algunos de estos algoritmos,debemos indicar que la mayora de las situaciones del problema de la planificacinpara sistemas de tiempo real crticos son computacionalmente intratables [GJ75,GJ79]. Veamos algunos casos:

    El caso general de encontrar un algoritmo ptimo para un sistema con variosprocesadores, restricciones de recursos y restricciones de precedencia esNP-hard.

    Cuando las tareas usan recursos compartidos de forma arbitraria, determinarsi un conjunto dado de tareas puede cumplir sus requisitos de tiempo esNP-hard incluso en un sistema monoprocesador [Mok83].

    El problema de planificar tareas con relaciones arbitrarias de precedenciasobre dos procesadores y un recurso es NP-completo.

    Para tres procesadores y un recurso, aun sin relaciones de precedencia, elproblema es NP-completo.

    Resumiendo, la planificacin con restricciones de recursos es un problemaNP-completo, y la presencia de restricciones de precedencia aumenta el proble-ma. Muchos autores han examinado la utilizacin de heursticos y algoritmosaproximados para tratar con tareas que tengan requisitos complejos, incluyendorequisitos de recursos y restricciones de precedencia.

    2.2. Paradigmas de planificacin

    Como hemos mencionado en la seccin anterior, la predecibilidad es uno delos principales objetivos en los sistemas de tiempo real. Se deben realizar anlisisde planificabilidad (tambin llamados pruebas de viabilidad) sobre las tareas deun sistema de tiempo real para predecir si dichas tareas cumplirn sus requisitostemporales.

    Por tanto, un algoritmo de planificacin para sistemas de tiempo real deberproporcionar un conjunto de reglas que determinen si las tareas cumplirn sus

  • 22 Planificacin en sistemas de tiempo real

    restricciones temporales (anlisis de viabilidad) y, en ese caso, qu tarea se debeejecutar en cada instante.

    Una primera clasificacin de los algoritmos de planificacin se puede realizaren funcin de cmo se realiza el anlisis de planificabilidad. Podemos clasificarlos algoritmos en:

    Estticos: estos algoritmos realizan un anlisis de planificabilidad de lastareas a priori (antes de que el sistema comience a funcionar en rgimenpermanente).La planificacin esttica tiene como ventajas: produce unas cargas administrativas muy bajas, ya que en tiempo de

    ejecucin basta con seguir las reglas que dicta el algoritmo para selec-cionar la siguiente tarea a ejecutar,

    es adecuada para trabajar con tareas con plazos crticos, ya que pode-mos comprobar a priori si dichas tareas cumplirn siempre sus plazos,

    y sus principales inconvenientes son:

    requiere un conocimiento previo completo de las caractersticas de lastareas,

    es incapaz de tratar adecuadamente las tareas aperidicas.

    Dinmicos4: realizan el anlisis de viabilidad en tiempo de ejecucin (cadavez que aparece una nueva tarea).Sus principales ventajas son: su flexibilidad para tratar con tareas de tipo aperidico, ya que realizan

    decisiones sobre dichas tareas en el momento que aparecen, no requieren un conocimiento previo de las caractersticas de todas las

    tareas,

    y sus inconvenientes son:4Muchos autores [ABRW91, BW96] utilizan el trmino planificacin dinmica para referirse

    a aquellos sistemas que toman cualquier decisin sobre la planificacin en tiempo de ejecucin.Para estos autores, algoritmos como los basados en asignacin de prioridades dinmicas (que paranosotros sern estticos) son dinmicos, ya que la asignacin de prioridades a las tareas se realizaen tiempo de ejecucin aunque el anlisis de viabilidad se haya realizado de manera esttica. No-sotros seguiremos las ideas de otros autores [SRC85, RS93], que consideran algoritmos dinmicossolamente aquellos que no realizan un anlisis de viabilidad a priori.

  • Paradigmas de planificacin 23

    no pueden asegurar el cumplimiento de los plazos de las tareas crticas,ya que no realizan un anlisis a priori para comprobar si dichos plazosse podrn cumplir,

    suponen unas mayores cargas administrativas para el sistema, ya queadems de elegir la siguiente tarea a ejecutar, tambin tienen que de-cidir en qu orden se ejecutarn las tareas en tiempo de ejecucin.

    Resumiendo, podemos decir, que la mayor ventaja del paradigma de planifi-cacin esttico es su predecibilidad, mientras que su principal inconveniente essu falta de flexibilidad. Por contra, el paradigma dinmico tiene como principalventaja su flexibilidad y como mayor inconveniente su falta de predecibilidad.

    Se han propuesto diversos mecanismos para dotar de una cierta flexibilidada los algoritmos estticos y para dotar de cierta predecibilidad a los algoritmosdinmicos.

    En [RS93] se refina esta clasificacin de los algoritmos de planificacin, agru-pndolos en cuatro paradigmas dependiendo de:

    1. si el sistema realiza anlisis de planificabilidad,

    2. en caso de que lo haga, si se realiza de manera esttica o dinmica, y

    3. si el resultado del anlisis produce una plan indicando qu tareas son elegi-das en cada instante en tiempo de ejecucin.

    En base a estas ideas, se identifican las siguientes clases de algoritmos:

    Aproximaciones estticas basadas en tablas: Estos algoritmos realizanun anlisis de planificabilidad esttico y el resultado de dicho anlisis esun plan (normalmente llamado tabla) que se utiliza en tiempo de ejecucinpara decidir en qu momento debe comenzar su ejecucin cada tarea.Este tipo de algoritmos son aplicables slo a tareas de tipo peridico (o es-pordico), ya que se debe encontrar un plan para el mnimo comn mltiplode los periodos de las tareas. Esta caracterstica hace que este paradigma seaaplicable a sistemas simples, pero que llegue a ser inmanejable para gran-des sistemas (sistemas multiprocesador o distribuidos con gran cantidad detareas).El objetivo principal de este tipo de algoritmos es, obviamente, la predecibi-lidad, es decir, determinar una planificacin posible donde todas las tareas

  • 24 Planificacin en sistemas de tiempo real

    cumplan sus requisitos temporales, restricciones de precedencia, etc. Conestos algoritmos se fija exactamente cundo y dnde (en caso de sistemasmultiprocesador y/o distribuidos) se ejecutarn las instancias de una tarea.Debido a esto es muy inflexible, ya que cualquier cambio en las tareas o ensus caractersticas requerir una parada del sistema para volver a calcularde manera completa las tablas.

    Otro inconveniente que aparece es la dificultad para obtener las tablas (parael caso general es un problema NP-completo y se deben utilizar tcnicasbasadas en heursticos).

    Aproximaciones estticas basadas en prioridades y con requisa: Estosalgoritmos tambin realizan un anlisis de planificabilidad esttico pero, alcontrario que en los anteriores, no se construye un plan explcito. En tiempode ejecucin las tareas se ejecutan segn una poltica basada en prioridades.Este tipo de aproximacin se utiliza en muchos sistemas que no son de tiem-po real. Las tareas tienen prioridades que se asignan de manera esttica odinmica y, en cualquier instante, se ejecuta la tarea con mayor prioridad.Este ltimo requisito es el que hace necesaria la requisa: si se est ejecutan-do una tarea de baja prioridad y pasa a estar en estado ejecutable una tareade mayor prioridad, la primera es suspendida y se asigna el procesador a lade mayor prioridad. Este tipo de aproximacin tambin es vlido para siste-mas de tiempo real si los criterios que se siguen para asignar las prioridadesa las tareas tienen en cuenta las restricciones temporales de las tareas.

    Dado que en esta tesis vamos a utilizar algoritmos de este tipo, veremosalgunos ejemplos en la seccin 2.3.

    Aproximaciones dinmicas garantizadas (tambin denominadas aproxi-maciones dinmicas basadas en planes): A diferencia de los dos casosanteriores, la viabilidad se comprueba en tiempo de ejecucin. Es decir, unanueva tarea es aceptada de manera dinmica para su ejecucin slo si secomprueba que el conjunto formado por todas las tareas ya garantizadasy la nueva tarea es viable (si lo es, la nueva tarea pasar a formar parte delplan y se dice que dicha tarea ha sido garantizada). Uno de los resultados delanlisis de viabilidad es un plan que se utiliza para decidir en qu momentopuede comenzar la ejecucin de cada tarea.Este tipo de algoritmos proporcionan la flexibilidad de las aproximacionesdinmicas con parte de la predecibilidad de las aproximaciones que com-prueban estticamente la viabilidad: cuando aparece una nueva tarea, antesde comenzar su ejecucin, se intenta crear un plan que contenga todas las

  • Algoritmos de planificacin 25

    tareas garantizadas hasta ese momento junto con la nueva tarea. Si el inten-to de garantizar la nueva tarea falla y dicho intento se ha realizado con lasuficiente antelacin al plazo de la tarea, se dispone de tiempo para realizaracciones alternativas (estas alternativas pueden ser: proporcionar un mensa-je de error, ejecutar una accin de recuperacin de errores o, en un sistemadistribuido, buscar otro nodo que pueda garantizar la tarea).Los trabajos realizados en el sistema operativo Spring [SR87, SR91] perte-necen a esta categora.

    Aproximaciones dinmicas bienintencionadas (best-effort): En esta ca-so no se realiza ningn anlisis de viabilidad. El sistema intenta comportarsede la mejor manera posible para conseguir cumplir los plazos de las tareas.No obstante, dado que no se proporciona ninguna garanta, una tarea puedeser abortada durante su ejecucin si no cumple su plazo. Hasta que una tareatermina, o se cumple su plazo, no sabremos si se cumplen sus restriccionestemporales. sta es su mayor desventaja.La idea en que se basan este tipo de algoritmos consiste en asignar un va-lor (o utilidad) a cada tarea. En cualquier momento, se ejecuta la tarea conmayor utilidad o mayor densidad de utilidad (utilidad / tiempo de ejecucinrestante). Si la tarea finaliza en plazo su valor de utilidad se suma a la uti-lidad global del sistema. Si la tarea no logra cumplir su plazo se consideraque no ha contribuido a la utilidad global del sistema. El objetivo final esconseguir el mayor valor posible de utilidad global del sistema.

    Claramente, el mayor inconveniente de este tipo de algoritmos es su falta depredecibilidad.

    Podemos encontrar estudios sobre este tipo de algoritmos en [Loc86].

    Al igual que en la clasificacin anterior, se debe indicar que aunque se iden-tifican estas cuatro categoras, algunas tcnicas de planificacin poseen caracte-rsticas que pertenecen a varias categoras. Por ejemplo, en algunos algoritmos deplanificacin cclicos utilizados en grandes sistemas de tiempo real [Car84], seutiliza una combinacin de planificacin basada en tablas y planificacin basadaen prioridades. A las tareas se les asigna uno de un conjunto de periodos arm-nicos que tienen una prioridad. Dentro de cada periodo, las tareas se ejecutan deacuerdo a una tabla que simplemente lista el orden en que se deben ejecutar lastareas.

  • 26 Planificacin en sistemas de tiempo real

    2.3. Algoritmos de planificacin

    En esta seccin presentaremos algunos algoritmos de planificacin. En con-creto nos centraremos en los algoritmos estticos basados en prioridades y conrequisa, que son los que utilizaremos en esta tesis, ya que al tratar con tareas detiempo real crticas, necesariamente tendremos que utilizar un paradigma estticoque nos garantice la predecibilidad necesaria.

    Como ya se ha indicado, la funcin de un algoritmo de planificacin es deter-minar si existe una planificacin viable, es decir, una planificacin para ejecutarel conjunto de tareas, de manera que se satisfagan las restricciones de tiempo,precedencia y recursos de todas las tareas, y calcular dicha planificacin, si exis-te. Los dos paradigmas de planificacin estticos que hemos visto se diferencianen la forma de calcular la planificacin. Mientras las aproximaciones basadas entablas construyen una planificacin explcita que se seguir en tiempo de ejecu-cin, las aproximaciones basadas en prioridades no construyen una planificacinexplicita, sino que simplemente definen una poltica de asignacin de prioridadesa las tareas en tiempo de ejecucin. Esto hace que sea ms fcil introducir ciertaflexibilidad en las aproximaciones basadas en prioridades y es lo que nos ha hechodecantarnos por ellas.

    Adems, en esta tesis nos centraremos en el estudio de sistemas monoproce-sador. Por tanto todos los algoritmos que se presentan sern aplicables solamentea sistemas de este tipo.

    Los algoritmos estticos basados en prioridades y con requisa se pueden cla-sificar en dos grandes grupos en funcin de los criterios que siguen para la asig-nacin de prioridades a las tareas:

    Asignacin de prioridades estticas (o fijas)5: El algoritmo asigna unaprioridad a cada tarea que no variar durante el periodo de funcionamientodel sistema.

    Asignacin de prioridades dinmicas: Las prioridades asignadas a cadatarea podrn variar mientras el sistema est en ejecucin en funcin de de-terminados parmetros del resto de las tareas y del estado del sistema.

    5Por concisin, a partir de ahora hablaremos de algoritmos con asignacin de prioridadesfijas para referirnos a los algoritmos estticos basados en prioridades, con requisa y con asig-nacin esttica de prioridades y de algoritmos con asignacin de prioridades dinmicas parareferirnos a los algoritmos estticos basados en prioridades, con requisa y con asignacin din-mica de prioridades.

  • Algoritmos de planificacin 27

    Antes de ver alguno de estos algoritmos, veremos cul es el modelo de sistemaque tomamos como base y la nomenclatura que vamos a utilizar.

    2.3.1. Modelo del sistema

    Para el anlisis de los algoritmos de planificacin, tomaremos como base elmodelo que se presenta a continuacin.

    Un conjunto de tareas T que tendr como elementos {1 . . . i . . . n} donde nes la cardinalidad de T . Cada i tiene las siguientes caractersticas:

    Di - plazoPi - periodoCi - tiempo de ejecucin sin interrupcin

    Las caractersticas de las tareas son las siguientes:

    1. Ci Di = Pi, es decir, las tareas tienen tiempos de ejecucin menores quesu plazo, y su plazo es igual a su periodo.

    2. El tiempo de ejecucin de cada tarea (Ci) es constante.3. Todas las tareas son peridicas.

    4. No existen relaciones de precedencia entre las tareas.

    5. No se permite la comunicacin ni sincronizacin entre tareas.

    6. No se considera el acceso a recursos compartidos por parte de las tareas.

    7. El tiempo de cambio de contexto es despreciable.

    8. Todos los procesos comparten un nico procesador.

    Aunque este modelo puede parecer demasiado simple para ajustarse a las nece-sidades de un sistema real, es til para hacer un anlisis simple de los algoritmosde planificacin. Ms adelante veremos que se han propuesto diversos mtodospara eliminar la mayora de las restricciones que se han impuesto a las tareas sinque el anlisis de los algoritmos expuestos deje de ser vlido.

    Dado el conjunto de tareas anterior, definiremos su factor de utilizacin de lasiguiente manera:

  • 28 Planificacin en sistemas de tiempo real

    Definicin 2.1 El factor de utilizacin (U) del procesador para un conjunto dadode tareas es la fraccin del tiempo de procesador empleada en la ejecucin dedicho conjunto de tareas.

    Para el modelo de sistema presentado, este factor vale:

    U =n

    i=1

    Ci/Pi (2.1)

    Para cualquier algoritmo para sistemas monoprocesador, como es el caso, re-sulta obvio que:

    Teorema 2.1 La condicin necesaria, aunque no suficiente, para que un algorit-mo de planificacin sea viable es que:

    U 1 (2.2)

    El objetivo de un algoritmo de planificacin basado en prioridades consistiren asignar a cada tarea i una prioridad, que denotaremos por Pri.

    2.3.2. Asignacin esttica de prioridades

    En este apartado veremos dos algoritmos. El primero de ellos denominadomontono en tasa (RM: Rate Monotonic) que como se ver es ptimo dentrode los algoritmos de asignacin esttica de prioridades, y un segundo algoritmodenominado montono en plazo (DM: Deadline Monotonic) que permite elimi-nar una de las restricciones impuestas en el modelo que estamos utilizando, enconcreto permite que el plazo de una tarea sea distinto del fin de su periodo actual(Ci Di Pi.)

    2.3.2.1. Rate Monotonic (RM)

    Liu y Layland [LL73] propusieron el algoritmo Rate Monotonic (RM), y ade-ms demostraron que:

    Teorema 2.2 El algoritmo RM es ptimo dentro de los esquemas de asignacinesttica de prioridades.

  • Algoritmos de planificacin 29

    Por ptimo entendemos que si se puede encontrar una planificacin viable paraun conjunto dado de tareas mediante un algoritmo de asignacin de prioridadesestticas, entonces dicho conjunto de tareas tambin ser planificable mediante elalgoritmo RM.

    El algoritmo RM consiste en asignar una prioridad a cada tarea en funcin desu periodo. Cuanto menor es el periodo de una tarea, mayor ser su prioridad (Pi Prj). Con este esquema tan simple, las prioridades permanecernfijas y, por tanto, su implementacin es muy sencilla.

    En el anlisis de este algoritmo [LL73], se calcula un lmite del factor de utili-zacin del procesador por parte de un conjunto de tareas para que la planificacinde dicho conjunto de tareas sea siempre viable mediante el algoritmo RM. Dicholmite viene dado por:

    U = n(21/n 1) (2.3)

    Es decir:

    Teorema 2.3 La condicin suficiente para que la planificacin de un conjuntodado de n tareas peridicas sea viable mediante el algoritmo RM (y por tanto,mediante cualquier algoritmo de asignacin de prioridades estticas) es que sufactor de utilizacin cumpla:

    U n(21/n 1) (2.4)

    El lmite del factor de utilizacin dado por la ecuacin 2.3 para dos tareas esU ' 83 % y, para n grande converge a U ' 69,3 %.

    Puesto que la condicin dada por el teorema 2.3 es suficiente, aunque no nece-saria (la condicin necesaria viene dada por el teorema 2.1), podr haber conjuntosde tareas que sean planificables mediante RM aun cuando su factor de utilizacinsea mayor que el valor dado por la ecuacin 2.3. Lo que asegura el valor dado porla ecuacin 2.3 es que cualquier conjunto de tareas con un factor de utilizacinpor debajo de ese lmite siempre tendr una planificacin viable.

    Solamente habr una planificacin viable mediante RM para un conjunto detareas con un factor de utilizacin mayor que el lmite dado por la ecuacin 2.3 silos periodos de dichas tareas, Pi, estn adecuadamente relacionados. El caso msfavorable ser cuando todos los periodos de las tareas son armnicos del menorde ellos.

  • 30 Planificacin en sistemas de tiempo real

    En [LSD89] se presenta una condicin necesaria y suficiente para comprobarla viabilidad de un conjunto de tareas con el algoritmo RM:

    Teorema 2.4 Existir una planificacin viable para un conjunto de n tareas pe-ridicas mediante el algoritmo RM si y slo si:

    i / 1 i n : mn(k,l)Ri

    ij=1

    Cj1

    lPk

    lPkPj

    1 (2.5)

    donde:Ri =

    {(k, l)/1 k i, l = 1, . . . ,

    PiPj

    }

    El anlisis de viabilidad para un conjunto de n tareas dado por el teorema 2.3(anlisis suficiente pero no necesario) tiene una complejidad O(n), mientras quela complejidad computacional del anlisis dado por el teorema 2.4 (necesario ysuficiente) es dependiente de los datos, ya que el nmero de clculos que es nece-sario realizar depende de los valores de los periodos de las tareas.

    2.3.2.2. Deadline Monotonic (DM)

    Este algoritmo, propuesto en [LW82], permite que los plazos de las tareas seanmenores que sus periodos, es decir: Ci Di Pi

    Con este algoritmo se asignan las prioridades de manera esttica a las tareas demanera inversamente proporcional a la longitud de sus plazos. Es decir, al procesocon el plazo ms prximo se le asigna la mxima prioridad.

    Este algoritmo es equivalente a RM si para todas las tareas Di = Pi.

    En [LW82] se demuestra, al igual que ocurra con RM, que:

    Teorema 2.5 El algoritmo DM es ptimo dentro de los esquemas de asignacinesttica de prioridades.

    En [Aud90] se presentan una serie de pruebas de viabilidad para este algorit-mo:

    Un anlisis de planificabilidad de complejidad O(n) que es suficiente aun-que no necesario.

  • Algoritmos de planificacin 31

    Un anlisis de planificabilidad de complejidad O(n2) que es suficiente aun-que no necesario, capaz de planificar ms conjuntos de tareas que el anterior.Un anlisis de no planificabilidad de complejidad O(n2) que es suficienteaunque no necesario.

    Un anlisis de planificabilidad que es necesario y suficiente y cuya comple-jidad es dependiente de los datos.

    2.3.3. Asignacin dinmica de prioridades

    Con el fin de aumentar el factor de utilizacin del procesador proporcionadopor los algoritmos de asignacin esttica de prioridades, Liu y Layland [LL73]tambin estudiaron posibles algoritmos con asignacin dinmica de prioridadesque aumentaran dicho factor de utilizacin y encontraron un algoritmo ptimo quedenominaron algoritmo de planificacin guiado por plazos (DDSA: DeadlineDriven Scheduling Algorithm). Este algoritmo se denomin posteriormente elplazo ms prximo primero (EDF: Earliest Deadline First).

    Adems de este algoritmo ptimo, en este apartado se presentar otro algorit-mo tambin ptimo denominado la menor holgura primero (LLF: Least LaxityFirst).

    2.3.3.1. Earliest Deadline First (EDF)

    El algoritmo EDF [LL73] consiste en asignar dinmicamente las prioridadesa las tareas de manera directamente proporcional a la proximidad en el tiempo delcumplimiento de sus plazos actuales. Es decir, se asigna la prioridad ms alta a latarea con el plazo (actual) ms prximo en el tiempo.

    Con este algoritmo la condicin necesaria para la viabilidad de cualquier algo-ritmo de planificacin dada por el teorema 2.1 se convierte adems en suficiente:

    Teorema 2.6 La condicin necesaria y suficiente para que un conjunto de tareasperidicas tengan una planificacin viable mediante el algoritmo EDF es:

    U 1 (2.6)

    Como EDF puede conseguir un factor de utilizacin del 100 % para cualquierconjunto de tareas, podemos concluir que;

  • 32 Planificacin en sistemas de tiempo real

    Teorema 2.7 EDF es ptimo globalmente.

    Es decir, que si existe algn algoritmo que proporcione una planificacin via-ble para un determinado conjunto de tareas peridicas, entonces EDF tambinproporciona una planificacin viable para dicho conjunto de tareas.

    2.3.3.2. Least Laxity First (LLF)

    La holgura (laxity) de una tarea se define como su plazo actual menos el tiem-po de ejecucin que le resta a la tarea para completar su ejecucin actual. Es decir,es el tiempo que la tarea puede esperar antes de continuar ejecutndose sin dejarde cumplir su plazo.

    El algoritmo LLF consiste en asignar las prioridades a las tareas de manerainversamente proporcional a su holgura (la mayor prioridad a la tarea con unaholgura menor).

    Como se demuestra en [MD78], con el algoritmo LLF tambin se puede con-seguir, al igual que ocurra con EDF, un factor de utilizacin del 100 % para cual-quier conjunto de tareas, por lo que:

    Teorema 2.8 LLF es ptimo globalmente.

    2.3.4. Extensiones del modelo utilizado

    Como ya indicamos anteriormente, el modelo utilizado para exponer los al-goritmos anteriores es demasiado simple para cubrir las caractersticas de un sis-tema real de tiempo real. Sin embargo ese modelo es conceptualmente sencilloy por tanto simplifica la presentacin de los algoritmos. Se han propuesto mu-chas extensiones a los algoritmos anteriores que permiten soslayar muchas de lasrestricciones iniciales del modelo.

    As por ejemplo,

    permitir que las tareas tengan plazos ms cortos que sus perodos, como yahemos visto con el algoritmo DM. Otras aproximaciones a esta restriccinse pueden encontrar en [BHR90, Leh90, ABR+93],

  • Otras consideraciones importantes 33

    ad