You are on page 1of 5

UNIVERSIDAD

DE CANTABRIA

Lenguajes para sistemas de tiempo real

Programa de la asignatura

Página Web:
http://www.ctr.unican.es/asignaturas/lenguajes_str/
Máster en computación
Curso 2010-2011
Profesor: J. Javier Gutiérrez (gutierjj@unican.es)
GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 1
FACULTAD
4 DE CIENCIAS 19/nov/10

Objetivos UNIVERSIDAD
DE CANTABRIA

• Conocer los principales lenguajes de programación para el


desarrollo de aplicaciones con requisitos de tiempo real
• Conocer los principales elementos utilizados para programar
sistemas de tiempo real
- Concurrencia, políticas de planificación, sincronización, gestión
del tiempo, etc.
• Conocer formas de codificar los principales patrones de diseño
que son de utilidad en sistemas de tiempo real
• Ser capaz de programar aplicaciones con requisitos de tiempo
real usando primitivas de lenguajes de alto nivel
• Ser capaz de codificar en estos lenguajes los principales
patrones de diseño para sistemas de tiempo real

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 2


FACULTAD DE CIENCIAS 19/nov/10

Lenguajes para sistemas de tiempo


real UNIVERSIDAD
DE CANTABRIA

Lenguajes sin soporte para programación de tiempo real


• requieren la programación a través de los servicios del sistema
operativo, por ejemplo POSIX
• C/C++
Lenguajes con soporte para programación de tiempo real
• Ada: soportado por instrucciones del propio lenguaje
• Java: soportado mediante una API
Nos centraremos en Ada

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 3


FACULTAD DE CIENCIAS 19/nov/10
Ada UNIVERSIDAD
DE CANTABRIA

El lenguaje Ada se caracteriza por hacer énfasis en la fiabilidad


• Es el lenguaje mayoritario en sistemas de seguridad crítica
- por ejemplo, aviones, trenes, vehículos espaciales

Es uno de los pocos lenguajes que tiene soporte directo para


programar sistemas de tiempo real
• en los sistemas de tiempo real el software debe responder a
tiempo a sucesos que ocurren en el mundo real
• muchos sistemas basados en computador son sistemas de
tiempo real
- vehículos, robots, televisión y vídeo, telecomunicaciones, ...

Es un lenguaje moderno que soporta la programación orientada a


objetos, la programación concurrente, ...
GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 4
FACULTAD DE CIENCIAS 19/nov/10

Java UNIVERSIDAD
DE CANTABRIA

También es un lenguaje moderno que soporta la programación


orientada a objetos, la programación concurrente, ...
Java tiene soporte opcional para sistemas de tiempo real
• RTSJ: Real-time specification for Java
Soporta threads con características de tiempo real
• planificación por prioridades fijas o EDF
Tiene una dificultad importante en la gestión de la memoria
• La memoria automática de Java no es apta para sistemas de
tiempo real; RTSJ define otras formas de gestión de memoria
Existe mucho interés en RTSJ pero escasas aplicaciones, aún

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 5


FACULTAD DE CIENCIAS 19/nov/10

Programa UNIVERSIDAD
DE CANTABRIA

• Parte I: Fundamentos de programación en lenguaje Ada


• Parte II: Programación de tiempo real en Ada
• Parte III: Patrones básicos de tiempo real

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 6


FACULTAD DE CIENCIAS 19/nov/10
PARTE I: Fundamentos de
programación en lenguaje Ada UNIVERSIDAD
DE CANTABRIA

1.1. Elementos básicos del lenguaje Ada


1.2. Estructuras de datos dinámicas
1.3. Modularidad y programación orientada a objetos
1.4. Tratamiento de errores
1.5. Abstracción de tipos mediante unidades genéricas

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 7


FACULTAD DE CIENCIAS 19/nov/10

Parte II: Programación de tiempo real


en Ada UNIVERSIDAD
DE CANTABRIA

2.1 Planificación por prioridades


2.2 Sincronización de tiempo real
2.3 Gestión del tiempo
2.4 Gestión de interrupciones
2.5 Planificación jerárquica
2.6 Restricciones y perfil de Ravenscar

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 8


FACULTAD DE CIENCIAS 19/nov/10

Parte III: Patrones básicos de tiempo


real UNIVERSIDAD
DE CANTABRIA

3.1 Tareas periódicas y aperiódicas


3.2 Esquemas productor/consumidor
3.3 Transacciones lineales

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 9


FACULTAD DE CIENCIAS 19/nov/10
Actividades UNIVERSIDAD
DE CANTABRIA

Clases de teoría
• Apoyado por el material de la bibliografía
Ejercicios
• Problemas prácticos breves
Prácticas
• Se pedirá el código y un breve informe con los resultados

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 10


FACULTAD DE CIENCIAS 19/nov/10

Sistemas de evaluación UNIVERSIDAD


DE CANTABRIA

Evaluación continuada de los ejercicios y las prácticas, donde se


califica:
• Haber resuelto la funcionalidad de caso práctico
• Defensa de la solución propuesta
• Adecuación de los medios utilizados
• Originalidad y elegancia de la solución

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 11


FACULTAD DE CIENCIAS 19/nov/10

Calendario UNIVERSIDAD
DE CANTABRIA

Trabajo
Tema Teoría Ejercicios Prácticas
autónomo
1. Fundamentos de Programación en 5 1 5 20
lenguaje Ada
2. Programación de tiempo real en Ada 7 2 10 35
3. Patrones básicos 3 2 5 23

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 12


FACULTAD DE CIENCIAS 19/nov/10
Bibliografía Básica UNIVERSIDAD
DE CANTABRIA

[1] Alan Burns and Andy Wellings. Real-Time Systems and Programming Languages (Fourth
Edition) Ada 2005, Real-Time Java and C/Real-Time POSIX . Addison Wesley Longmain,
2009
[2] S.T. Taft, R.A. Duff, R.L. Brukardt, E. Ploedereder, y P. Leroy (Eds.). "Ada 2005 Reference
Manual. Language and Standard Libraries. International Standard ISO/IEC 8652:1995(E)
with Technical Corrigendum 1 and Amendment 1". LNCS 4348, Springer, 2006.

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 13


FACULTAD DE CIENCIAS 19/nov/10

Bibliografía complementaria UNIVERSIDAD


DE CANTABRIA

[3] Andrew Wellings . Concurrent and Real-time Programming in Java . John Wiley &Sons,
2004
[4] John Barnes . Programming in ADA 2005. Addison Wesley, 2006
[5] Eric J. Bruno , Greg Bollella . Real-Time Java Programming: with Java RTS: With the Java
Real-Time System. Prentice Hall, 2009.
[6] Peter C. Dibble. Real-Time Java Platform Programming. Booksurge Llc; 2 edition (25 Jun
2008)
[7] Bruce Powel Douglass. Real Time Design Patterns: Robust Scalable Architecture for Real-
time Systems. Addison Wesley; Pap/Cdr edition (3 Oct 2002)

GRUPO DE COMPUTADORES Y TIEMPO REAL ©J. Javier Gutiérrez 14


FACULTAD DE CIENCIAS 19/nov/10

You might also like