Introducción al tiempo real en sistemas empotrados Master en Ingeniería de Sistemas Empotrados Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea Introducción al tiempo real en sistemas empotrados Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Contenido Introducción Soporte de interrupciones Conceptos de sistemas operativos Planificación en sistemas de tiempo real Mecanismos de sincronización y comunicación Planificación de tiempo real con recursos compartidos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Soporte de interrupciones CONTENIDO Introducción Interrupciones y excepciones Controladores de interrupciones Manejadores de interrupciones Mecanismo de ejecución de interrupciones y excepciones BIBLIOGRAFIA Q. Li: Real-Time concepts for embedded systems. CMP Books, 2003. Capítulo 10. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Introducción El hardware del sistema está compuesto de sensores, actuadores y recursos de cómputo (procesador, memoria). Interfaz hardware para el programador: Instrucciones del lenguaje máquina Espacio de direcciones de memoria Espacio de direcciones de entrada/salida Vectores de interrupciones … Un sistema operativo (o componentes del SO), que se instala sobre esta interfaz permite compartir y gestionar el hardware de forma más sencilla. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Interrupciones y excepciones Excepción: Evento que, producido durante la ejecución de un programa, provoca que el procesador ejecute un código especial para tratarla. También llamadas interrupciones internas. Interrupción: Condición asíncrona provocada por un dispositivo externo. También llamadas excepciones asíncronas. Se tratan de la misma forma que las excepciones. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Interrupciones y excepciones Tipos Combinatoria de tipos: Interrupciones (asíncronas) no enmascarables Interrupciones (asíncronas) enmascarables Excepciones (síncronas) precisas Excepciones (síncronas) imprecisas Orden de prioridad: Interrupciones no enmascarables Excepciones Interrupciones enmascarables Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Controladores de interrupciones En un sistema (empotrado) puede haber diferentes fuentes de interrupción: Sensores Reloj Dispositivos de E/S Las interrupciones pueden tener diferentes prioridades. Al procesador del sistema le llega una única línea de interrupción. Controlador Programable de Interrupciones (PIC): Prioriza y selecciona las interrupciones. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
PIC Ejemplo PIC CPU VI Sensor del airbag Sensor de frenada + PRIORIDAD - Sensor de frenada CPU Interrupción VI Sensor de temperatura Reloj Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
PIC Intel 8259 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Manejadores de interrupciones En la CPU, las interrupciones pueden Inhibirse (todas ellas) Enmascararse (selectivamente), excepto las NMI (mediante instrucciones privilegiadas) Tanto interrupciones como excepciones generan una dirección de entrada a una tabla que contiene las direcciones de comienzo de las Rutinas de Servicio (ISR). Atención a la terminología: a esta dirección también se le suele llamar vector de interrupción. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Manejadores de interrupciones Esquema de direccionamiento de la ISR Memoria ISRi ISR1 Interrupción externa CPU ISRn Excepción PIC Tabla de VIs @ VI Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Manejadores de interrupciones ¿Por qué direccionar indirectamente las ISR? El sistema operativo utilizará el VI para instalar el código de las llamadas al sistema. Los sistemas operativos permiten instalar código en modo normal accesible desde la ISR (mecanismo de señales de UNIX). Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Mecanismo de ejecución La interrupción/excepción requiere su propio contexto de ejecución (pila). Debe guardarse el contexto del programa que se está ejecutando para recuperarlo tras la ejecución. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Mecanismo de ejecución. Ejemplo Se está ejecutando una tarea. Se produce una interrupción de prioridad baja. CPU SP Pila Se salva el estado de procesador. Estado del procesador Se ejecuta la rutina de servicio ISRL. Estado del procesador Se produce una interrupción de prioridad alta. 6. Se salva el estado de procesador. 7. Se ejecuta la rutina de servicio ISRH. 8. Termina ISRH. Se vuelve a ISRL. 9. Termina ISRL. Se vuelve al punto de ejecución de la tarea. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores