Download SISTEMAS EN TIEMPO REAL

Document related concepts
no text concepts found
Transcript
SISTEMAS EN TIEMPO REAL
Año académico:
2006/07
Centro:
Escuela Politécnica Superior
Estudios:
Ingeniero Técnico en Informática de Sistemas
Asignatura:
Sistemas en Tiempo real
Ciclo:
1º
Curso:
3º
Cuatrimestre:
2º
Carácter:
Optativa
Créditos teóricos:
3
Créditos prácticos:
3
Profesor:
Luis Yebra Muñoz
Área:
Ingeniería de Sistemas y Automática
DESCRIPTORES
Metodologías de desarrollo de sistemas en tiempo real: análisis, especificación, diseño,
implantación y verificación. Lenguajes y herramientas de programación de sistemas en
tiempo real. Sistemas empotrados.
TEMARIO
–
Programa de teoría
Tema 1. Introducción a los sistemas en tiempo real y los sistemas informáticos de control
1.1 Introducción a los sistemas en tiempo real y los sistemas informáticos de control.
1.2 Clasificación, elementos y características de los sistemas en tiempo real.
1.3 Introducción al control por computador y esquemas básicos de control en sistemas
empotrados.
Tema 2. Diseño de sistemas de tiempo real
2.1 Introducción.
2.2 Tipos de notación.
2.3 Especificación de requisitos.
2.4 Actividades y métodos de diseño.
2.5 Lenguajes de programación.
2.6 Sistemas operativos de tiempo real.
2.7 Pruebas.
2.8 Prototipos.
2.9 Interfaz hombre-máquina en sistemas en tiempo real.
Tema 3. Introducción a la programación de sistemas en tiempo real en Ada y C
3.1 Introducción a Ada y C: estructura de bloques, tipos de datos, estructuras de control
y subprogramas.
3.2 Estructura de un programa en Ada y C.
3.3 Programación modular y en gran escala.
3.4 Ocultamiento de información.
3.5 Compilación separada.
3.6 Tipos abstractos de datos. Sobrecarga de operadores y programación orientada a
objetos. Ada y C++.
3.7 Reutilización de software.
3.8 Entornos de desarrollo de software.
Tema 4. Fiabilidad en sistemas en tiempo real
4.1 Introducción.
4.2 Fiabilidad, fallos y averías.
4.3 Prevención y tolerancia a fallos.
4.4 Redundancia estática y dinámica en software y bloques de recuperación.
4.5 Excepciones y manejo de excepciones. Ada y C/POSIX 1003.
4.6 Aplicaciones.
Tema 5. Tareas y concurrencia en sistemas en tiempo real
5.1 Introducción.
5.2 Tareas concurrentes, tipos y objetos tarea y tareas dinámicas. Hilos de ejecución en
POSIX 1003.
5.3 Comunicación y sincronización entre tareas.
5.4 Esquemas de comunicación y sincronización basados en uso compartido de
memoria. Uso de objetos protegidos en Ada.
5.5 Esquemas de comunicación y sincronización basados en envío de mensajes. Cita
extendida en Ada. Colas de mensajes en POSIX 1003.
Tema 6. Gestión de recursos
6.1 Introducción.
6.2 Uso de recursos en acciones atómicas.
6.3 Control de acceso a recursos.
6.4 Esquemas de gestión de recursos.
Tema 7. Tiempo real
7.1 Introducción.
7.2 Medida del tiempo real y relojes.
7.3 Retardos.
7.4 Límites temporales: limitación del tiempo de espera, aceptación y llamada
temporizada y/o condicional.
7.5 Requisitos temporales.
7.6 Tareas periódicas y esporádicas en Ada.
7.7 Primitivas de temporización en POSIX 1003.
Tema 8. Planificación de tareas
8.1 Introducción a la planificación de tareas.
8.2 Planificación con ejecutivos cíclicos.
8.3 Planificación con prioridades de tareas periódicas independientes.
8.4 Planificación con prioridades de tareas esporádicas y aperiódicas.
8.5 Interacción entre tareas y bloques en planificación con prioridades.
8.6 Planificación con prioridades siguiendo un modelo de tareas generalizado.
8.7 Realización de sistemas con prioridades.
8.8 Otros métodos de planificación.
8.9 Planificación en POSIX 1003.
Tema 9. Manejadores de dispositivos
9.1 Introducción.
9.2 Un ejemplo simple de sistema de entrada-salida.
9.3 Dispositivos de entrada-salida: Ada y POSIX 1003.
9.4 Ejemplo de realización de un manejador de dispositivo.
9.5 Acceso a dispositivos de entrada-salida usando instrucciones especiales.
Tema 10. Aspectos avanzados de los sistemas de tiempo real
y campos de
aplicación.
10.1
Introducción.
10.2
Sistemas distribuidos de tiempo real. CORBA y sus extensiones en tiempo
real.
10.3
Sistemas operativos en tiempo real. Soluciones comerciales y de libre
distribución.
10.4
Aplicaciones en tiempo real para sistemas empotrados de 8, 16 y 32 bits.
Líneas de aplicación.
10.5
Control en Tiempo Real de Plantas de Energía Solar. Casos de Aplicación en
Plantas de Energía de Receptor Central.
OBSERVACIONES: El tema 3 se desarrollará en las sesiones de prácticas.
–
Programa de prácticas de laboratorio
Módulo 1: Programación en lenguaje C con hebras POSIX bajo el SOTR LynxOS (4
horas).
Material: herramientas de desarrollo en lenguaje C/C++ para SOTR LynxOS sobre
Linux/Win2000. Computador de ejecución con LynxOS y de análisis y desarrollo
Linux/Win2000.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación
1.1 Iniciación al SOTR POSIX LynxOS.
1.2 Interfaz POSIX para el manejo de procesos multihebra.
Módulo 2: Mecanismos de sincronización entre hebras POSIX 1003.1c. (4 horas)
Material: herramientas de desarrollo en lenguaje C/C++ para SOTR LynxOS sobre
Linux/Win2000. Computador de ejecución con LynxOS y de análisis y desarrollo
Linux/Win2000.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación
2.1 Sincronización mediante objetos 'mutex'.
2.2 Sincronización mediante 'variables de condición' .
2.3 Sincronización mediante semáforos.
Módulo 3: Planificación y sincronización con POSIX 1003.1c. (6 horas).
Material: herramientas de desarrollo en lenguaje C/C++ para SOTR LynxOS sobre
Linux/Win2000. Computador de ejecución con LynxOS y de análisis y desarrollo
Linux/Win2000.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación.
3.1 Planificación en POSIX 1003.1c: prioridades, políticas y dominios.
3.2 Inversión de prioridades. Mecanismos en POSIX 1003.1c para evitarlas.
3.3 Primitivas para el manejo del tiempo en POSIX 1003.
Módulo 4: Sistemas operativos, compiladores y entornos de programación en Ada (2
horas)
Material: compilador Ada 95 gnat 3.13. Software de libre distribución para programación en
Ada.
Laboratorios: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación
4.1 Compilador gnat y entornos de programación en Ada: adacaps y adagide.
4.2 Análisis del software de libre distribución para programación en Ada.
Módulo 5: Introducción a Ada como lenguaje de programación de sistemas en tiempo
real (4 horas)
Material: Compilador Ada 95 gnat 3.13.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación.
5.1 Programación: introducción, estructura de programa, variables tipo entero,
operaciones lógicas y variables booleanas.
5.2 Programación: estructuras de control, tipos y subprogramas.
5.3 Programación: bloques y ámbitos de variables, arrays, cadenas y records.
5.4 Programación: variables tipo acceso, entrada y salida de datos, paquetes.
5.5 Programación: excepciones y elementos avanzados de programación con
subprogramas.
5.6 Programación: gestión de tiempos y tareas. Comunicación entre tareas.
Módulo 6: Sincronización de tareas en ADA (2 horas).
Material: Compilador Ada 95 gnat 3.13.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación.
6.1
Sincronización entre tareas Ada mediante cita extendida.
6.2
Planificación de las colas asociadas a las entradas de una tarea.
Módulo 7: Gestión de Tiempos e Interrupciones. Programación Genérica. (2 horas).
Material: Compilador Ada 95 gnat 3.13.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación.
7.1 Realización de módulos cíclicos, esporádicos y otros de interés.
7.2 Manejo del paquete Ada para tiempo real Ada.Real_Time.
7.3 Manejo de paquetes genéricos.
7.4 Tipos tarea y de tipos objeto protegido.
Módulo 8: Sistema de Control en Tiempo Real de un Calentador a Gas (6 horas)
Material: Compilador Ada 95 gnat 3.13.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y
Computación.
8.1 Fundamentos de la implementación en tiempo real de algoritmos de control PID.
8.2 Implementación en Ada: utilización de tipos tarea y objeto protegido.
8.3 Desarrollo de un sistema de control concurrente en tiempo real de presión y
temperatura de un calentador de gas, utilizando: tareas, objetos protegidos y
manejadores de excepciones.
BIBLIOGRAFÍA BÁSICA
1. J.P. Barnes. Programming in Ada; Ada'95. Addison-Wesley, 1995.
2. S. Bennet. Real-Time Computer Control: An Introduction. Prentice-Hall. 1988.
3. G. Booch. Software Engineering with Ada. Addison-Wesley, 1994.
4. A. Burns y A. Wellings. Real-Time Systems and Programming Languages. AddisonWesley. 1996.
5. Information technology - Programming languages - Ada Reference Manual. International
Standard ISO/IEC 8652:1995(E), versión 6.0, Diciembre 1994.
6. H. Kopetz. Real-Time Systems. Design Principles for Distributed Embedded Applications.
Kluwer, 1997.
7. G. Olsson y G. Piani. Computer Systems for Automation and Control. Prentice-Hall. 1992.
8. J.A. de la Puente. Apuntes de la asignatura Control de Procesos. Escuela Superior de
Ingenieros de Telecomunicación. Madrid, 1990-97.
9. J.A. de la Puente. Apuntes y transparencias de la asignatura Sistemas en Tiempo Real.
Escuela Superior de Ingenieros de Telecomunicación. Madrid, 1998.
10. B.O. Gallmeister. POSIX.4: Programming for the real world. O'Reilly & Associates, Inc.
1995.
11. D.R. Butenhof. Programming with POSIX Threads. Addison-Wesley Publishing. 1997.
12. B. Nichols, D. Buttlar and J. Proulx. Pthreads Programming. O'Reilly & Associates, Inc.
1996.
EVALUACIÓN
Evaluación y asistencia a las prácticas.