30
RTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa [email protected]

RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa [email protected]

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

RTSJ (Real-Time Specification for Java)Universidad ORT Uruguay7 de marzo de 2007

Daniel Tejera Carballa [email protected]

Page 2: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 2

Índice:� Introducción:

� Sistemas de tiempo real, Motivación y Problemas� RTSJ

� Principios básicos� Áreas principales:

� Gestión de memoria� Relojes y Valores temporales� Planificación� Hebras de tiempo real� Manejo de eventos asíncronos� Transferencia asíncrona de control� Sincronización y Recursos compartidos� Acceso a Memoria Física

� Referencias: RT-JVM, Aplicaciones, Documentación

Page 3: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 3

Introducción:Sistemas de tiempo real ?

es un sistema informático que:� interacciona repetidamente con su entorno� responde a los estímulos que recibe del mismo dentro de

un plazo de tiempo determinado

Para que el funcionamiento del sistema sea correcto nobasta con que las acciones sean correctas, sino que tienenque ejecutarse dentro del intervalo de tiempo especificado

Tipos: Críticos, Firmes y Acríticos

Page 4: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 4

Introducción :Donde encontramos STR ?

� Sistemas de control por computador� Sistemas de tratamiento de señales� Sistemas de mando y control� Sistemas de telecomunicaciones� Sistemas de aviónica� Sistemas de control de trenes y automóviles� Sistemas de control de tráfico aéreo� Sistemas multimedia� Electrónica de consumo (teléfonos, PDA …)� etc.� Nota: A menudo se trata de sistemas empotrados

Page 5: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 5

Introducción:Motivación

Área prometedora para sistemas de tiempo real:� programación orientada a objetos� Simple� Seguro (no existen punteros)� Independencia de Plataforma� Popularidad� Bibliotecas

Page 6: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 6

Introducción:Problemas de Java en STR

La definición original no es adecuada para tiempo real:� la planificación de actividades concurrentes no está bien

definida� la gestión dinámica de memoria introduce indeterminismo� los mecanismos de sincronización son inadecuados� la medida del tiempo no es suficientemente precisa� otros problemas con excepciones y concurrencia

Page 7: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 7

Introducción:Java para tiempo real

� NIST (National Institute of Science and Technology) Requirementsfor Real-Time Extensions to Java (1999)� no modificar la sintaxis, coexistencia con aplicaciones

convencionales� Real-Time Java Working Group (J-Consortium)

� Real-Time Core Extension (2000)� basada en una máquina virtual separada para STR

� Java Real-time Experts Group (Sun & otros)� Real-Time Specification for Java (2000-2001)� basada en un máquina virtual extendida para STR� hay varias implementaciones de RTSJ

Page 8: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 8

Introducción:Principios básicos en RTSJ

� Compatibilidad con versiones anteriores

� Ejecución predecible

� WORA (Write Once, Run Anywhere)

� Definir lo básico ahora y permitir introducircaracterísticas avanzadas en el futuro

� Sin extensiones sintácticas

� Permite variaciones en las implementaciones

Page 9: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 9

Introducción:Áreas principales

RTSJ mejora Java en las siguientes áreas:

� Gestión de memoria

� Relojes y Valores temporales

� Planificación

� Hebras de tiempo real

� Manejo de eventos asíncronos

� Transferencia asíncrona de control

� Sincronización y recursos compartidos

� Acceso a Memoria Física

Page 10: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 10

Gestión de Memoria:

� Memoria Heap:� Tradicional en Java� Utiliza un recolección basura, el cual introduce latencias

impredecibles

� Tecnología para incluir recolector de basura de tiempo realno suficientemente avanzada

� RTSJ: extiende modelo gestión de memoria para eliminar elefecto del recolector de basura.� Noción de áreas de memoria� Desalojo del recolector de basura en un tiempo acotado

Page 11: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 11

Gestión de Memoria:

MemoryArea

HeapMemory ScopedMemory ImmortalMemory

LTMemory VTMemory

Page 12: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 12

Gestión de Memoria: Reglas

� Reglas para evitar punteros incorrectos producidos porla recolección en memoria restringida.

� Evitar que objetos de mayor tiempo de vida referenciena objetos con tiempo de vida menor.

LimitadoYesYesVariable local

LimitadoYesYesScoped

NoYesYesImmortal

NoYesYesHeap

Ref. a ScopedRef. a ImmortalRef. a HeapReference constraints

Page 13: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 13

Gestión de Memoria:

� Variables de referencia no pueden tener una vida más largaque la del objeto referenciado.

� Desde memoria Heap o Immortal no se puede hacerreferencia a objetos en Scoped

� Notas:� Variables Estáticas en ImmortalMemory -> No pueden hacer

referencia a objetos en ScopedMemory� IllegalAssignmentError� Las clases de Java no están pensadas para que se ejecuten

en ScopedMemory.

Page 14: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 14

Gestión de Memoria:Memorias restringidas anidadas

Page 15: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 15

Gestión de Memoria:Compartiendo memorias restringidas

Page 16: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 16

Relojes y Valores temporales:

Page 17: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 17

Planificación:Scheduler

� Java: no se garantiza que una hebra de mayor prioridad se ejecutesiempre primero

� Planificador Scheduler.� Contiene métodos para admisión de hebras, mecanismos de

manejo de eventos asíncronos� Subclase PriorityScheduler:

» Con desalojo basado en prioridades fijas (al menos 28prioridades)

� Implementar algoritmos alternativos de planificación extendiendoclase Scheduler

» Ejemplo: EDF (Earliest Deadline First)

Page 18: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 18

Planificación:Interfaz Schedulable� Interfaz Schedulable: Objetos planificables (schedulable object)

� RealtimeThreads y AsyncEventHandlers� Parámetros usados por objetos planificables:

� SchedulingParameters � PriorityParameters: Prioridad� MemoryParameters: Limita uso de áreas de memoria� ReleaseParameters � AperiodicParameters,

PeriodicParameters, SporadicParameters» Todos: Costo y Plazo de respuesta» Periódicos: Inicio y Período» Esporádicos: Mínimo tiempo entre dos activaciones» Todos: OverrunHandler y MissHandler

� ProcessingGroupParameters: periodo, costo y plazocompartido

Page 19: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 19

Planificación:Hebras de tiempo real

Page 20: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 20

Manejo de eventos Asíncronos:AsyncEvent

Page 21: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 21

Manejo de eventos Asíncronos:AsyncEventHandler

� Manejadores:� heredan de AsyncEventHandler y sobrescriben el método

handleAsyncEvent() o� pasan a uno de los constructores un objeto que implemente la

interfaz Runnable.� Cuando ocurre un evento los métodos handleAsyncEvent()

o los métodos run() son invocados� Los parámetros temporales, de memoria, y planificación

asociados al manejador controlan la ejecución del mismo� AsyncEventHandler: latencias por asignación de hebra� BoundAsyncEventHandler: sin latencias, permanentemente

asociados a una hebra de tiempo real

Page 22: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 22

Manejo de eventos Asíncronos:

� Muchos sistemas de tiempo real son equivalentes a unaalarma de reloj o un timer.

� Solución nuevos eventos:� Timer: subclase de AsyncEvent, que representa un objeto

dirigido por tiempo.� OneShotTimer: subclase de Timer

» se dispara una vez, en el momento especifico.� PeriodicTimer: subclase de Timer

» Se dispara en el momento especifico y luego de acuerdo aun intervalo de tiempo.

Page 23: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 23

Transferencia asíncrona de control:

� Mecanismo que permite a una hebra lanzar una excepciónsobre otra hebra.

� Basada en los siguientes principios� El OP tiene que declarar que está preparado� Los métodos o bloques sincronizados difieren la TAC� TAC tiene semántica de terminación, es decir, una TAC es

una transferencia de control no retornable.

� Las excepciones transferibles se definen heredando deAsynchronouslyInterruptedException

Page 24: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 24

Transferencia asíncrona de control:� Cada método debe indicar que está preparado para recibir una TAC

poniendo AsynchronouslyInterruptedException en la cláusula throw� Por seguridad:

� Las TAC son diferidas mientras se ejecutan métodos o bloquessincronizados o inicializadores estáticos

� Las TAC puede ser manejadas únicamente dentro de métodosdiferidos

� Cuando se invoca el método java.lang.interrupt() sobre una hebra:� Si hebra está ejecutando un método interrumpible, el método

inmediatamente actuará como si el sistema hubiera lanzado laexcepción.

� Si hebra no está ejecutando método interrumpible, sistema pondrála excepción en estado pendiente para la hebra y la entregarácuando se pase control a método interrumpible

Page 25: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 25

Sincronización y Recursos compartidos:Inversión de Prioridades ilimitadas

Page 26: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 26

Sincronización y Recursos compartidos:Colas

� Colas para comunicación entre NHRTs - Threads� WaitFreeWriteQueue: NHRTs utilizan operación write; Threads

utilizan la operación read.

� WaitReadFreeQueue: Threads utilizan operación write; NHRTsutilizan la operación read.

WriteRead No bloqueanteUnsynchronized

BloqueanteSynchronized

WriteRead BloqueanteSynchronized

No BloqueanteUnsynchronized

Page 27: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 27

Acceso a Memoria Física:

Clases para acceder a memoria física directamente desdecódigo Java:

� RawMemoryAccess:�Objeto que represente conjunto de dirs físicas como una

secuencia de bytes.

� PhysicalMemory:�Objeto que representa un rango de direcciones físicas

en los que el sistema puede almacenar objetos Java

� Estas clases permiten a los programas implementardrivers o mapear memoria a dispositivos de I /O.

Page 28: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 28

RT-JVM:

� Implementaciones RTSJ:

�TimeSys RTSJ Reference Implementation(JTime ) -- Linux.

�Sun Java SE Real-time (Java RTS ) --Sparc/Solaris.

�IBM/Apogee Aphelion -- Linux.�IBM WebSphere Real Time -- Linux.

�Aicas Jamaica VM -- Linux.�Aonix PERC

Page 29: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 29

Aplicaciones:

� Dentro del proyecto europeo HIJA:� “Safety Critical Applications and Hard RealTime

Profile for Java: A Case Study in Avionics”� “Flexible Java RealTime Profile for Businesscritical

Systems”� Otros ejemplos:

�RTZen: es un middleware basado en corba 2.3 y rt-corbael cual está implementado usando RTSJ

» http://doc.ece.uci.edu/rtzen/

Page 30: RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java) Universidad ORT Uruguay 7 de marzo de 2007 Daniel Tejera Carballa tejera@dit.upm.es

ORT Uruguay © Daniel Tejera, Marzo 2007 30

Documentación:

� Concurrent and Real-Time Programming in Java�Andy Wellings

� Real-Time Java™ Platform Programming�Peter C. Dibble

� http://www.rtsj.org /