Herramienta para el modelado y an - PowerPoint PPT Presentation

About This Presentation
Title:

Herramienta para el modelado y an

Description:

... que crea el archivo java instrumentado. En la ... tipo de clase que es en el tipo de dato y ... en un m todo wait() hasta que un thread de menor ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 47
Provided by: Jose
Category:

less

Transcript and Presenter's Notes

Title: Herramienta para el modelado y an


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
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
Patrones de diseño de TR
  • Patrón Protected

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

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

9
Patrones de diseño de TR
  • Respuesta a un evento del entorno con requisito
    temporal final

10
Patrones de diseño de TR
  • Respuesta a un evento del entorno con requisito
    temporal final

11
Patrones de diseño de TR
  • Respuestas con requisitos temporales intermedios

12
Patrones de diseño de TR
  • Respuestas con requisitos temporales intermedios

13
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
Patrones de diseño de TR
  • Respuesta que se comunica con un sistema de no
    tiempo real

16
Patrones de diseño de TR
  • Respuesta que se comunica con un sistema de no
    tiempo real

17
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
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
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
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
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
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

ltmast_mdlMAST_MODEL Model_Name"RTLinuxNode" Model_Date"2013-04-03T230518" ..."gt ... ltmast_mdlFixed_Priority_Policy Min_Priority"11" Max_Priority"58" Worst_Context_Switch"28.96E-6" Avg_Context_Switch"9.036E-6" Best_Context_Switch"8.171E-6"/gt lt/mast_mdlPrimary_Schedulergt lt/mast_mdlMAST_MODELgt
29
Programa de medida
  • Estructura del programa
  • Modelo MAST2
  • Informe de texto

RTLinuxModelEstimator application results report Priority Range Probe Highest Real-time priority 58 Lowest Real-time priority 11 Timed Suspension Context Switch Probe Number of context switches 5772 Maximum context switch time 28.96E-6 Minimum context switch time 10.82E-6 Average context switch time 12.76E-6
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
  • (/ _at_OORT_.... /)

/ _at_OORT_protected / Clase Protected Constructor() / _at_OORT_synchronized / synchronized()
32
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

import TimeMntr. / _at_OORT_eventHandler // _at_OORT_periodicExecutor / Clase Executor private int monitores Constructor() public void run() createThreadMnrt() recordThrProcessInstant() while(!interrupted()) recordThrProcessInstant()
35
Instrumentación de código
  • Patrones protegidos

import TimeMntr. / _at_OORT_protected // _at_OORT_eventSource // _at_OORT_synchronizer / Clase Protected private int monitores Constructor() createProtectedResource() createProtectedOperMntr() / _at_OORT_eventTrigger / eventTrigger() recordOperProcessInstant() notify() recordOperProcessInstant()
36
Instrumentación de código
  • Main

Import TimeMntr. / _at_OORT_main / Clase Main private static TimeMntr mntr Main() new NoHeapRealTimeThread().run() mntr new TimeMntr() .start() / .close() mntr.stopRecordingData() mntr.createMastModel()
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
Especificación y diseño lógico
40
Diseño de MetrologyUpdating
41
Generación del modelo
  • Clase instrumentada por RTCode4TimeMntr

/ _at_OORT_eventHandler / private class PerturbographExecutor extends NoHeapRealtimeThread private Perturbogram target private Perturbograph task private int peSrc public PerturbographExecutor() super() public void run() peSrc tTimeMntr.createThreadMntr(TimeMntr.toString(this)) PerturbogramData pData new PerturbogramData() TimeMntr.recordTheadTime(peSrc) while(!interrupted()) target.awaitPerturbogram(pData) task.submit(pData) TimeMntr.recordTheadTime(peSrc)
42
Generación del modelo
  • Modelo obtenido con TimeMntr

lt!-- "Perturbograph.PerturbographExecutor_1e51060" Executor model--gt ltmast_mdlThread Name"Perturbograph.PerturbographExecutor_1e51060.thread" Scheduler"platformNode.sheduler"gt ltmast_mdlFixed_Priority_Params Priority"41"/gt lt/mast_mdlThreadgt ltmast_mdlEnclosing_Operation Name"Perturbograph.PerturbographExecutor_1e51060.response" Worst_Case_Execution_Time"977.920241E-3" Avg_Case_Execution_Time"975.023895E-3" Best_Case_Execution_Time"861.168964E-3"gt ltmast_mdlOperation Name"Perturbogram_9ed927.awaitPerturborgram"/gt ltmast_mdlOperation Name"Perturbogram_9ed927.marshall"/gt lt/mast_mdlEnclosing_Operationgt
43
Generación del modelo
  • Modelo obtenido con TimeMntr

lt!-- "Metrology.MetrologyExecutor_1a679b7" Executor model--gt ltmast_mdlThread Name"Metrology.MetrologyExecutor_1a679b7.thread" Scheduler"platformNode.sheduler"gt ltmast_mdlFixed_Priority_Params Priority"47"/gt lt/mast_mdlThreadgt ltmast_mdlRegular_End_To_End_Flow Name"Metrology.MetrologyExecutor_1a679b7.e2ef"gt ltmast_mdlPeriodic_Event Name"trigger" Period"0E0"/gt ltmast_mdlInternal_Event Name"end"gt ltmast_mdlHard_Global_Deadline Referenced_Event"trigger" Deadline"0E0"/gt lt/mast_mdlInternal_Eventgt ltmast_mdlInternal_Event Name"internalEvent0"/gt ltmast_mdlStep Input_Event"trigger" Output_Event"internalEvent0" Step_Schedulable_Resource"Metrology.MetrologyExecutor_1a679b7.thread" Step_Operation"Metrology.MetrologyExecutor_1a679b7.response" Hold_Schedulable_Resource"NO"/gt ltmast_mdlStep Input_Event"internalEvent0" Output_Event"end" Step_Schedulable_Resource"Perturbograph.PerturbographExecutor_1e51060.thread" Step_Operation"Perturbograph.PerturbographExecutor_1e51060.response" Hold_Schedulable_Resource"NO"/gt lt/mast_mdlRegular_End_To_End_Flowgt
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?
Write a Comment
User Comments (0)
About PowerShow.com