Programa - Universidad de Almería

Anuncio
Asignatura:
Código:
Año académico:
Centro:
Departamento:
Área:
SISTEMAS EN TIEMPO REAL
40007318
2009/2010
ESCUELA POLITÉCNICA SUPERIOR
LENGUAJES Y COMPUTACIÓN
INGENIERÍA DE SISTEMAS Y AUTOMÁTICA
Titulación:
Ciclo:
Cuatrimestre:
Créditos teóricos:
INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS
PRIMER
TERCERO
Curso:
SEGUNDO
OPTATIVA
Carácter:
3
3
Créditos
prácticos:
Despacho
Teléfono
E-mail / Web
Profesorado:
JOSÉ LUIS GUZMÁN SÁNCHEZ
1.48, CITE III
950 015677
RAMÓN GONZÁLEZ SÁNCHEZ
Sala Becarios - CITE III
950 214171
[email protected]
http://www.ual.es/~joguzman/
[email protected]
http://www.ual.es/~rgonzalez/
Objetivos Generales:
Sistemas en Tiempo Real es una asignatura optativa que se imparte en primer ciclo de la titulación
Ingeniería Técnica en Informática. La asignatura consta de 3 créditos teóricos y 3 prácticos, y se incluye en
el horario de la especialidad de Sistemas, aunque es optativa para todas las especialidades y para la
titulación de Ingeniería Informática. Se encuentra únicamente vinculada al área de conocimiento de
Ingeniería de Sistemas y Automática, siendo sus descriptores los siguientes: 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. Esta asignatura introduce a
los alumnos de informática en las tecnologías de diseño de sistemas con especificaciones temporales y de
fiabilidad estrictas.
Los sistemas informáticos de tiempo real se utilizan en numerosos campos de aplicación, como el control de
aviones, automóviles y trenes, tráfico, comunicaciones, satélites, control de procesos, electrónica de
consumo, etc. La característica más importante de estos sistemas es que sus acciones se deben ejecutar en
intervalos de tiempo determinados por la dinámica de los sistemas físicos que supervisan o controlan.
Además, suelen tener requisitos estrictos de fiabilidad y seguridad. Muchos de estos sistemas están
empotrados en otros sistemas, lo que conlleva una limitación de recursos (potencia de procesador, memoria,
etc.) con respecto a otros tipos de sistemas informáticos. En la mayoría de los casos, además, deben ejecutar
varias tareas concurrentemente. Estas características, en conjunto, hacen que la construcción de sistemas de
tiempo real presente características específicas respecto a otros tipos de sistemas informáticos.
La necesidad de asegurar un comportamiento temporal determinado y una alta fiabilidad hacen que, en la
mayoría de los casos, los métodos de diseño y realización y el software básico (compiladores y sistemas
operativos) que se utilizan para desarrollar otros tipos de sistemas informáticos no sean adecuados para
construir sistemas de tiempo real. De acuerdo con esto, los objetivos de la asignatura son:



Comprender los problemas específicos de los sistemas de tiempo real, y las características que los
diferencian de otros sistemas informáticos.
Conocer los métodos más importantes que se utilizan para desarrollar sistemas de tiempo real con
un grado de fiabilidad elevado, especialmente los que se refieren a la medida del tiempo, la
planificación del uso de recursos, la prevención y tolerancia de fallos y la organización del
software, comprendiendo sus principios y formas de aplicación.
Conocer algunas herramientas (lenguajes de programación fundamentalmente) adecuados para la
realización de sistemas de tiempo real.
Conocimientos Previos Recomendados:
Conocimientos básicos sobre programación.
Contenidos teóricos (Temporización):
Tema 0. Introducción a la informática, automática y sistemas de tiempo real (3 horas)
0.1. Introducción a la informática industrial y la automática.
0.2. Introducción a la robótica y a los sistemas de tiempo real.
0.3. Campos de aplicación. Ejemplos de sistemas de tiempo real.
Tema 1. Introducción a los sistemas en tiempo real y los sistemas informáticos de control (2 horas)
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 horas)
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 (6 horas)
3.1 Introducción a Ada y C: conceptos básicos.
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.
3.7 Reutilización de software.
3.8 Entornos de desarrollo de software.
Tema 4. Tareas y concurrencia en sistemas en tiempo real (5 horas)
4.1 Introducción.
4.2 Tareas concurrentes, tipos y tareas dinámicas. Hilos de ejecución en POSIX 1003.
4.3 Comunicación y sincronización entre tareas.
4.4 Esquemas de comunicación y sincronización basados en uso compartido de memoria. Uso de
objetos protegidos en Ada.
4.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 5. Planificación de tareas (6 horas)
5.1. Introducción a la planificación de tareas.
5.2. Planificación con ejecutivos cíclicos.
5.3. Planificación con prioridades de tareas periódicas independientes.
5.4. Planificación con prioridades de tareas esporádicas y aperiódicas.
5.5. Interacción entre tareas y bloques en planificación con prioridades.
5.6. Planificación con prioridades siguiendo un modelo de tareas generalizado.
5.7. Realización de sistemas con prioridades.
5.8. Otros métodos de planificación.
5.9. Planificación en POSIX 1003.
Tema 6. Modelado de sistemas en tiempo real con redes de petri (4 horas)
6.1 Introducción.
6.2 Redes de petri convencionales.
6.3 Interpretaciones temporales de redes de petri.
6.4 Modelado y análisis de sistemas en tiempo real.
Tema 7. Aspectos avanzados de los sistemas de tiempo real y campos de aplicación (2 horas)
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.
Contenidos prácticos (Temporización):
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 y planificación con 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', ‘variables de condición' y mediante semáforos.
2.2 Planificación en POSIX 1003.1c: prioridades, políticas y dominios
Módulo 3: Introducción a Ada como lenguaje de programación de STR: Ejecutivo cíclico (4 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
3.1 Compilador gnat y entornos de programación en Ada: adacaps y adagide.
3.2 Análisis del software de libre distribución para programación en Ada.
3.3 Programación: introducción, estructura de programa, variables tipo entero, o peraciones lógicas y
variables booleanas.
3.4 Programación: estructuras de control, tipos y subprogramas.
3.5 Implementación de Tareas mediante ejecutivo cíclico.
Módulo 4: Concurrencia de Tareas en Ada (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.
4.1 Implementación y estructura de tareas periódicas en Ada.
4.2 Gestión de tiempo en Ada.
4.3 Detección de incumplimiento de plazos.
Módulo 5: Sincronización de tareas en ADA (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.
5.1 Sincronización entre tareas Ada mediante cita extendida.
5.2 Planificación de las colas asociadas a las entradas de una tarea.
Módulo 6: Programación de tareas en STR con Java (6 horas).
Material: Compilador y máquina virtual de Java en Tiempo Real.
Laboratorio: Control Automático, Robótica y Visión Artificial. Dpto. de Lenguajes y Computación.
6.1 Programación de tareas con Java.
6.2 Gestión de tiempo de Java.
6.3 Planificación de tareas en Java.
Bibliografía:
1. J.G.P. Barnes. Programming in Ada; Ada'95. Addison-Wesley, 1995.
2. J.G.P. Barnes. Programming in Ada 95. Addison-Wesley, 1998.
3. S. Bennet. Real-Time Computer Control: An Introduction. Prentice-Hall. 1988.
4. G. Booch. Software Engineering with Ada. Addison-Wesley, 1994.
5. A. Burns. Real-Time systems and programming languages. Addison-Wesley, 2001.
6. A. Burns y A. Wellings. Real-Time Systems and Programming Languages. Addison-Wesley. 1996.
7. D. Butenhof. Programming with POSIX threads. Addison-Wesley, 2002.
8. B. P. Douglass, Real Time UML: Advances in the UML for Real-time Systems. Addison-Wesley, 2004
9. Information technology - Programming languages - Ada Reference Manual. International Standard
ISO/IEC 8652:1995(E), versión 6.0, Diciembre 1994.
10. H. Kopetz. Real-Time Systems. Design Principles for Distributed Embedded Applications. Kluwer,
1997.
11. G. Olsson y G. Piani. Computer Systems for Automation and Control. Prentice-Hall. 1992.
12. J.A. de la Puente. Apuntes de la asignatura Control de Procesos. Escuela Superior de Ingenieros de
Telecomunicación. Madrid, 1990-97.
13. J.A. de la Puente. Apuntes y transparencias de la asignatura Sistemas en Tiempo Real. Escuela Superior
de Ingenieros de Telecomunicación. Madrid, 1998.
14. B.O. Gallmeister. POSIX.4: Programming for the real world. O'Reilly & Associates, Inc. 1995.
15. P. A. Laplante, Real-time Systems Design and Analysis: An Engineers Handbook. Wiley-IEEE Press –
2004.
16. B. Nichols, D. Buttlar and J. Proulx. Pthreads Programming. O'Reilly & Associates, Inc. 1996.
17. W. Y. Svrcek, D. P. Mahoney, B. R. Young. A real-time approach to process control. John Wiley &
Sons, 2006.
18. A.M. Lázaro, LabVIEW 7i. Programación gráfica para el control de instrumentación. Paraninfo, 2005
19. L. Sokoloff. Applicattion in LabView; Ed. Prentice Hall; 2004
Metodología:
Sesiones de teoría para todo el grupo de alumnos en las que el profesor explicará los contenidos teóricos
fundamentales de cada tema y donde se valorará la participación del alumnado con la aportación de nuevos
enfoques, preguntas,… Además durante el transcurso de cada tema hay un grupo de ejercicios que permiten
al alumno/a mejorar la destreza en el uso de los conceptos.
La parte práctica se organiza en sesiones para cada grupo de alumnos, desarrolladas en paralelo a la parte
teórica y con una adecuada sincronización, de forma que el alumnado pueda poner en práctica los
conocimientos adquiridos en cada módulo de la parte teórica y donde se pretenderá un comportamiento lo
más autónomo posible. Además, se proponen un conjunto de ejercicios que el alumno/a opcionalmente
puede realizar y enviar, o bien a través de WebCT o bien en tutorías, para su revisión.
El profesorado realiza el seguimiento continuo del proceso de aprendizaje, anotando los progresos del
alumnado y respondiendo a sus necesidades formativas que puedan surgir a lo largo del curso. Tanto en las
clases teóricas como prácticas se hará uso intensivo de herramientas interactivas junto con laboratorios
virtuales y remotos con el fin de realzar la motivación de los alumnos.
Plan de acción tutorial:
El alumnado podrá hacer uso de las tutorías para resolver las dudas que se le haya planteado en la parte
práctica y/o en la parte teórica de la asignatura. Por otra parte, al iniciar el curso se propondrán temas
relacionados con la temática de la asignatura para posibles trabajos opcionales organizados en grupos de
dos alumnos. Cada grupo de trabajo deberá asistir al menos a 3 tutorías a lo largo del cuatrimestre.
Previamente a la primera tutoría el profesor proporcionará la documentación inicial necesaria para la
elaboración del trabajo así como las fuentes donde deben buscar. En la primera tutoría deberán presentar
una recopilación del material bibliográfico que van a utilizar en la realización del trabajo. En la segunda
deberán entregar la estructura del trabajo. En la tercera entregarán el trabajo ya elaborado.
Evaluación:





Prácticas obligatorias y evaluación continua
Trabajo optativo relacionado con la asignatura
Ejercicios opcionales a entregar de cada tema
Examen final si se estima necesario: Junio 2010
Convocatorias extraordinarias que decida Escuela Politécnica Superior de la Universidad de Almería
Observaciones:
Las prácticas de laboratorio se desarrollarán en el Laboratorio de Control Automático, Robótica y Visión
Artificial del Departamento de Lenguajes y Computación, CITE III, puerta 229.
Descargar