RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java)...
Transcript of RTSJ Real-T Specification for Java) Universidad ORT UruguayRTSJ (Real-Time Specification for Java)...
![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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/1.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/25.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/28.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/29.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081613/5fb417f648c1aa5c4063f3f7/html5/thumbnails/30.jpg)
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 /