1 / 46

Herramienta para el modelado y análisis de planificabilidad de aplicaciones RT-Java sobre RT-Linux

Herramienta para el modelado y análisis de planificabilidad de aplicaciones RT-Java sobre RT-Linux. Máster en Computación Director de TFM: José María Drake Moyano José María Martínez Lanza. Tabla de contenidos. Introducción Herramienta RTLinuxNodeModelEstimator Módulo TimeMntr

love
Télécharger la présentation

Herramienta para el modelado y análisis de planificabilidad de aplicaciones RT-Java sobre RT-Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Herramienta para el modelado y análisis de planificabilidad de aplicaciones RT-Java sobre RT-Linux Máster en Computación Director de TFM: José María Drake Moyano José María Martínez Lanza

  2. Tabla de contenidos • Introducción • Herramienta RTLinuxNodeModelEstimator • Módulo TimeMntr • Herramienta RTCode4TimeMntr • Aplicación BURTA • Conclusiones y trabajo futuro

  3. Tabla de contenidos • Introducción • Aplicaciones RT-Java • Objetivos • Patrones de diseño de aplicaciones de tiempo real • Estructura de modelos de planificabilidad • Herramienta RTLinuxNodeModelEstimator • Módulo TimeMntr • Herramienta RTCode4TimeMntr • Aplicación BURTA • Conclusiones y trabajo futuro

  4. Aplicaciones RT-Java • Industria y JAVA • Especificación RTSJ • Aplicaciones en RT-Java

  5. Java project Test Java project Instrumentation code generator Annotated Java code class Instrumented Java class Instrumentation Executes Executes Application configuration data Emulated environment MAST Tool box Application real-time model Schedulability analysis Embedded processor Objetivos • Herramienta para la evaluación del modelo de plataforma. • Herramienta para la evaluación del modelo lógico y reactivo de aplicación RT-Java.

  6. obj.lock PClass.lock «active» «active» «active» «protected» obj:ProtectedClass client2 client1 client3 «synchronized» oper1() used «synchronized» oper2() «synchronized» oper1() free blocked «staticSynchronized» staticOper() Patrones de diseño de TR • Patrón Protected

  7. deadline rt-thread timer Patrones de diseño de TR act_2 act_3 act_1 Periodic activation mutex Other rt-responses • Respuesta periódica con requisito temporal final

  8. Patrones de diseño de TR • Respuesta periódica con requisito temporal final

  9. deadline rt-thread enviroment Patrones de diseño de TR act_2 act_3 act_1 Event occurrency mutex Other rt-responses • Respuesta a un evento del entorno con requisito temporal final

  10. «rtTaskJob» «eventHandler» Environment Handler Task «entry»awaitEvent() «postWaiting»initHandling() event «executorTask»task() return «entry»awaitEvent() awaiting Patrones de diseño de TR • Respuesta a un evento del entorno con requisito temporal final

  11. rt-thread1 deadline2 deadline1 rt-thread2 enviroment act_2 act_3 act_1 Event occurrency mutex2 Other rt-responses rt-thread1 deadline1 rt-thread2 deadline2 timer act_2 act_3 act_1 Periodic activation Other rt-responses mutex2 Patrones de diseño de TR mutex1 mutex1 • Respuestas con requisitos temporales intermedios

  12. obj.lock «active» «active» «active» «protected» obj:Synchr Client1 server Client2 «entry» await() «trigger»active() used blocked «postWaiting»process() free «synchronized» oper2() «trigger»change() Patrones de diseño de TR • Respuestas con requisitos temporales intermedios

  13. rt-thread fBoundedJitter sBoundedJitter sPriority bPriority fPriority timer act_2 act_3 act_1 Periodic activation offset mutex Other rt-responses Patrones de diseño de TR • Respuesta con jitter acotado de entrada y salida

  14. Patrones de diseño de TR • Respuesta con jitter acotado de entrada y salida

  15. deadline rt-thread timer act_2 act_3 act_1 Periodic activation waitFreeMutex No real-time subsystem Patrones de diseño de TR • Respuesta que se comunica con un sistema de no tiempo real

  16. Patrones de diseño de TR obj.lock «active» «active» «waitFreeProtected» obj:Bridge RTClient NRTClient «waitFreeSynchronized» freeWaitPut() • Respuesta que se comunica con un sistema de no tiempo real used return «synchronized»blockingGet() return «waitFreeSynchronized» freeWaitGet() «synchronized»blockingPut() free blocked «waitFreeSynchronized» freeWaitPut() no blocking return return

  17. Modelo plataforma Modelo lógico Modelo reactivo Modelos de planificabilidad • Modelo de plataforma: • RTSJ en Linux: Planificador y relojes. • Modelo lógico: • Elementos de modelado. • Modelo reactivo: • Respuestas

  18. Tabla de contenidos • Introducción • Herramienta RTLinuxNodeModelEstimator • Parámetros de plataforma y estrategia de medida • Programa de medida • Módulo TimeMntr • Herramienta RTCode4TimeMntr • Aplicación BURTA • Conclusiones y trabajo futuro

  19. Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Uso de CPU del no-rt timer • Resolución del rt timer

  20. Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Uso de CPU del no-rt timer • Resolución del rt timer

  21. suspension clock activation Texec Tsusp hThread Tsusp lThread Context switch Timed context switch Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Suspensión temporal • Uso de CPU del no-rt timer • Resolución del rt timer

  22. wait() Texec hThread notify() lThread Tsusp Context switch Context switch time Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Suspensión en un objeto protegido • Uso de CPU del no-rt timer • Resolución del rt timer

  23. hThread hThread.priority lThread.priority lThread Context switch Context switch time Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Cambio cruzado de prioridad • Uso de CPU del no-rt timer • Resolución del rt timer

  24. hThread locked lThread locked lock unlock lock lock lock unlock unlock unlock highPrty lowPrty hThread lThread Context switch Context switch time Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Suspensión en un mutex • Uso de CPU del no-rt timer • Resolución del rt timer

  25. primer ms 1) 2) 1 ms 3) t1 t2 t3 t5 t4 Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Uso de CPU del no-rt timer • Resolución del rt timer

  26. Parámetros y estrategia • Rango de prioridades • Cambios de contexto entre threads • Uso de CPU del no-rt timer • Resolución del rt timer

  27. Programa de medida • Estructura del programa • Modelo MAST2 • Informe de texto

  28. Programa de medida • Estructura del programa • Modelo MAST2 • Informe de texto

  29. Programa de medida • Estructura del programa • Modelo MAST2 • Informe de texto

  30. Tabla de contenidos • Introducción • Herramienta RTLinuxNodeModelEstimator • Módulo TimeMntr • Estrategia de herramienta y definición de anotaciones • Programa de medida • Herramienta RTCode4TimeMntr • Aplicación BURTA • Conclusiones y trabajo futuro

  31. Estrategia y anotaciones • Invocaciones durante los ciclos de ejecución • Anotaciones estilo JAVADOC y a partir de los estereotipos de los patrones: • (/* *@OORT_.... */)

  32. TimeMntr protectedOper thread mutex * * * mutex ThreadMntr trigger ProtectedOperMntr MutexMntr 1 name:String 0..1 entry name:String wcet:double acet:double bcet:double type:ProtectedOperType jidSet:set(long) name:String jid:long wcet:double acet:double bcet:double priority:int operList:list(ProtectedOperMntr) isSegment:boolean entry 0..1 0..1 «enum» ProtectedOperType callEntry 0..1 SYNCHRONIZED TRIGGER ENTRY SYNCHRONIZER_ENTRY POSTWAITING STATIC_SYNCHRONIZED STATIC_TRIGGER STATIC_ENTRY STATIC_SYNCHRONIZER_ENTRY STATIC_POSTWAITING nextSegment 0..1 Atributo en cursiva es generado por el algoritmo de creación del modelo Programa de medida • Clase principal y listas de elementos

  33. Tabla de contenidos • Introducción • Herramienta RTLinuxNodeModelEstimator • Módulo TimeMntr • Herramienta RTCode4TimeMntr • Instrumentación del código de la aplicación de tiempo real • Estrategias de herramienta • Aplicación BURTA • Conclusiones y trabajo futuro

  34. Instrumentación de código • Patrones ejecutores

  35. Instrumentación de código • Patrones protegidos

  36. Instrumentación de código • Main

  37. Estrategias de herramienta

  38. Tabla de contenidos • Introducción • Herramienta RTLinuxNodeModelEstimator • Módulo TimeMntr • Herramienta RTCode4TimeMntr • Aplicación BURTA • Especificación y diseño lógico de la aplicación • Diseño de la respuesta MetrologyUpdating • Generación del modelo de planificabilidad • Conclusiones y trabajo futuro

  39. Real-time Susbsystem HalfMemorInterr. Waveform Metrology Processor Sampler Metrology Data Perturbation event DAQ RT-Driver Perturbograph Perturbogram Message stream Connection monitor Switch Configuration Publisher No real-time Subsystem Especificación y diseño lógico

  40. :Perturbograph Executor :Metrology Executor [*]:Metrology Data Clock :Perturbograph [*]:Waveform :Perturbogram ms:MssgStreamer :Metrology awaitPerturbogram() For all Waveform instances :time out update() Or addPreData() or addPostdata() update() updateStatisticData() If ms.lock is free finalized() marshal() return awaitP… For all MetrologyData instances submit() submitPerturbogram() awaitPerturbogram() deadline= 0.2 s Periodic{ period 0.2 s} Diseño de MetrologyUpdating

  41. Generación del modelo • Clase instrumentada por RTCode4TimeMntr

  42. Generación del modelo • Modelo obtenido con TimeMntr

  43. Generación del modelo • Modelo obtenido con TimeMntr

  44. Tabla de contenidos • Introducción • Herramienta RTLinuxNodeModelEstimator • Módulo TimeMntr • Herramienta RTCode4TimeMntr • Aplicación BURTA • Conclusiones y trabajo futuro

  45. Conclusiones y trabajo futuro • Resultados satisfactorios • Aplicaciones funcionales • RTNodeModelEstimator: • Tiempos de acceso a drivers de tiempo real • RTCode4TimeMntr: • Optimización del código y nuevos algoritmos • TimeMntr: • Implementación de “merge” y “fork” para threads

  46. Gracias por su atención, ¿preguntas?

More Related