rtsj real-t specification for java) universidad ort uruguayrtsj (real-time specification for java)...

Post on 14-Aug-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

RTSJ (Real-Time Specification for Java)Universidad ORT Uruguay7 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

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

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

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

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

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

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

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

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

ORT Uruguay © Daniel Tejera, Marzo 2007 11

Gestión de Memoria:

MemoryArea

HeapMemory ScopedMemory ImmortalMemory

LTMemory VTMemory

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

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.

ORT Uruguay © Daniel Tejera, Marzo 2007 14

Gestión de Memoria:Memorias restringidas anidadas

ORT Uruguay © Daniel Tejera, Marzo 2007 15

Gestión de Memoria:Compartiendo memorias restringidas

ORT Uruguay © Daniel Tejera, Marzo 2007 16

Relojes y Valores temporales:

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)

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

ORT Uruguay © Daniel Tejera, Marzo 2007 19

Planificación:Hebras de tiempo real

ORT Uruguay © Daniel Tejera, Marzo 2007 20

Manejo de eventos Asíncronos:AsyncEvent

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

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.

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

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

ORT Uruguay © Daniel Tejera, Marzo 2007 25

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

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

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.

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

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/

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 /

top related