1 herramienta para el modelado y análisis de planificabilidad de aplicaciones rt-java sobre...

46
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

Upload: benedicto-rota

Post on 23-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

1

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

Máster en ComputaciónDirector de TFM: José María Drake Moyano

José María Martínez Lanza

Page 2: 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

2

Tabla de contenidos

Introducción Herramienta RTLinuxNodeModelEstimator Módulo TimeMntr Herramienta RTCode4TimeMntr Aplicación BURTA Conclusiones y trabajo futuro

Page 3: 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

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

Page 4: 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

4

Aplicaciones RT-Java

Industria y JAVAEspecificación RTSJAplicaciones en RT-Java

Page 5: 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

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.Test Java project

Annotated Java code class

InstrumentedJava class

Java project

Applicationreal-time model

Applicationconfiguration data

Instrumentationcode generator

MASTTool box

Emulated environment

Embedded processor

Executes

Executes

Schedulabilityanalysis

Instrumentation

Page 6: 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

6

Patrones de diseño de TR

Patrón Protected

obj:ProtectedClass client1 client2 client3

«synchronized» oper1()

«protected» «active» «active» «active»obj.lockPClass.lock

used

free «synchronized» oper1()

«synchronized» oper2()

«staticSynchronized» staticOper()

blocked

Page 7: 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

7

Patrones de diseño de TR

Respuesta periódica con requisito temporal final

act_1 act_3act_2

rt-thread

timer

Other rt-responses

mutexPeriodic activation

deadline

Page 8: 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

8

Patrones de diseño de TR

Respuesta periódica con requisito temporal final

Page 9: 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

9

Patrones de diseño de TR

Respuesta a un evento del entorno con requisito temporal final

act_1 act_3act_2

rt-thread

Other rt-responses

mutex

deadline

enviroment

Event occurrency

Page 10: 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

10

Patrones de diseño de TR

Respuesta a un evento del entorno con requisito temporal final

Environment Handler Task

«entry»awaitEvent()

«postWaiting»initHandling()«executorTask»task()

«entry»awaitEvent()

return

event

awaiting

«eventHandler» «rtTaskJob»

Page 11: 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

11

Patrones de diseño de TR

Respuestas con requisitos temporales intermedios

act_1 act_3act_2

rt-thread1

timer

Other rt-responses

mutex1Periodic activation

deadline2deadline1 rt-thread2

mutex2

act_1 act_3act_2

rt-thread1

Other rt-responses

mutex1

deadline2deadline1 rt-thread2

mutex2

enviroment

Event occurrency

Page 12: 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

12

Patrones de diseño de TR

Respuestas con requisitos temporales intermedios

obj:Synchr server Client1 Client2

«entry» await()

«protected» «active» «active» «active»obj.lock

used

free

«postWaiting»process()

«synchronized» oper2()

«trigger»active()

blocked

«trigger»change()

Page 13: 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

13

Patrones de diseño de TR

Respuesta con jitter acotado de entrada y salida

act_1 act_3act_2

rt-thread

timer

Other rt-responses

mutex

Periodic activation

fBoundedJitter

sBoundedJitter

 

sPriority bPriority fPriority

offset

Page 14: 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

14

Patrones de diseño de TR

Respuesta con jitter acotado de entrada y salida

Page 15: 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

15

Patrones de diseño de TR

Respuesta que se comunica con un sistema de no tiempo real

act_1 act_3act_2

rt-thread

timer

No real-time subsystem

waitFreeMutex

Periodic activation

deadline

Page 16: 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

16

Patrones de diseño de TR

Respuesta que se comunica con un sistema de no tiempo real

obj:Bridge RTClient NRTClient

«waitFreeSynchronized» freeWaitPut()

«waitFreeProtected» «active» «active»obj.lock

used

free

«synchronized»blockingGet()

return

blocked

return

returnreturn

«synchronized»blockingPut()

«waitFreeSynchronized» freeWaitGet()

«waitFreeSynchronized» freeWaitPut()

no blocking

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

17

Modelos de planificabilidad

Modelo de plataforma:RTSJ en Linux: Planificador y relojes.

Modelo lógico:Elementos de modelado.

Modelo reactivo:Respuestas

Modelo plataforma

Modelo reactivo

Modelo lógico

Page 18: 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

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

Page 19: 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

19

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threadsUso de CPU del no-rt timerResolución del rt timer

Page 20: 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

20

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threadsUso de CPU del no-rt timerResolución del rt timer

Page 21: 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

21

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threads

Suspensión temporal

Uso de CPU del no-rt timerResolución del rt timer

hThread

lThread

Context switch

suspension clock activation

Texec Tsusp

Tsusp

Timed context switch

Page 22: 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

22

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threads

Suspensión en un objeto protegido

Uso de CPU del no-rt timerResolución del rt timer

hThread

lThread

Context switch

wait()Texec

Tsusp

Context switch time

notify()

Page 23: 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

23

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threads

Cambio cruzado de prioridad

Uso de CPU del no-rt timerResolución del rt timer

hThread

lThread

Context switch

Context switch time

hThread.priority

lThread.priority

Page 24: 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

24

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threads

Suspensión en un mutex

Uso de CPU del no-rt timerResolución del rt timer

hThread

lThread

Context switch

Context switch time

unlockunlock unlock locklocklock lockunlock

hThread locked lThread locked

highPrty

lowPrty

Page 25: 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

25

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threadsUso de CPU del no-rt timer

Resolución del rt timer

1 ms

t1 t2 t3 t4t5

1)

2)

3)

primer ms

Page 26: 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

26

Parámetros y estrategia

Rango de prioridadesCambios de contexto entre threadsUso de CPU del no-rt timerResolución del rt timer

Page 27: 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

27

Programa de medida

Estructura del programa

Modelo MAST2Informe de texto

Page 28: 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

28

Programa de medida

Estructura del programaModelo MAST2

Informe de texto

<mast_mdl:MAST_MODEL Model_Name="RTLinuxNode" Model_Date="2013-04-03T23:05:18" ...">

...<mast_mdl:Fixed_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"/>

</mast_mdl:Primary_Scheduler></mast_mdl:MAST_MODEL>

Page 29: 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

29

Programa de medida

Estructura del programaModelo MAST2Informe 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

*********************************************************************************

Page 30: 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

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

Page 31: 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

31

Estrategia y anotaciones

Invocaciones durante los ciclos de ejecuciónAnotaciones estilo JAVADOC y a partir de los

estereotipos de los patrones: (/* *@OORT_.... */)

/** * @OORT_protected */

Clase Protected {

Constructor(){

}

/** * @OORT_synchronized */

synchronized(){

}

}

Page 32: 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

32

Programa de medida

Clase principal y listas de elementosTimeMntr

 

ThreadMntr ProtectedOperMntr MutexMntr

name:String

mutex

name:Stringwcet:doubleacet:doublebcet:doubletype:ProtectedOperTypejidSet:set(long)

name:Stringjid:longwcet:doubleacet:doublebcet:doublepriority:intoperList:list(ProtectedOperMntr)isSegment:boolean

thread protectedOper mutex

 

«enum»

ProtectedOperType

SYNCHRONIZEDTRIGGERENTRYSYNCHRONIZER_ENTRYPOSTWAITINGSTATIC_SYNCHRONIZEDSTATIC_TRIGGERSTATIC_ENTRYSTATIC_SYNCHRONIZER_ENTRYSTATIC_POSTWAITING

entryentry

nextSegment 0..1

0..1

Atributo en cursiva es generado por el algoritmo de creación del modelo

0..1

1

* * *

trigger

callEntry

0..1

0..1

Page 33: 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

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

Page 34: 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

34

Instrumentación de código

Patrones ejecutoresimport TimeMntr.*;

/* * @OORT_eventHandler // @OORT_periodicExecutor */Clase Executor {

private int monitores;Constructor(){

…}

public void run(){createThreadMnrt();recordThrProcessInstant();while(!interrupted()){

…recordThrProcessInstant();

}

}

}

Page 35: 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

35

Instrumentación de código

Patrones protegidosimport TimeMntr.*;

/** * @OORT_protected // @OORT_eventSource // @OORT_synchronizer */Clase Protected {

private int monitores;Constructor(){

…createProtectedResource();createProtectedOperMntr();

}

/** * @OORT_eventTrigger */eventTrigger(){

recordOperProcessInstant();…notify();…recordOperProcessInstant();

}}

Page 36: 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

36

Instrumentación de código

MainImport TimeMntr.*;

/** * @OORT_main */Clase Main {

private static TimeMntr mntr;Main(){

new NoHeapRealTimeThread().run(){mntr = new TimeMntr();… .start() / .close() …mntr.stopRecordingData();mntr.createMastModel();

}}

}

Page 37: 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

37

Estrategias de herramienta

Page 38: 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

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

Page 39: 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

39

Especificación y diseño lógico

 

 

 

DAQRT-Driver

HalfMemorInterr. Real-time Susbsystem

No real-time Subsystem

Sampler

Connection

monitor

Perturbograph

Metrology

Processor

Publisher

Perturbation event

Message

stream

Waveform

Metrology

Data

Perturbogram

Switch

Configuration

Page 40: 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

40

Diseño de MetrologyUpdating

Clock:MetrologyExecutor :Metrology [*]:Waveform [*]:Metrology

Data:Perturbogram

:PerturbographExecutor :Perturbograph ms:MssgStreamer

:time out update()

update()

updateStatisticData()

finalized()

awaitPerturbogram()

awaitPerturbogram()

submit()submitPerturbogram()

return awaitP…

deadline= 0.2 s

Periodic{period 0.2 s}

For all Waveform instances

For all MetrologyData instances

If ms.lock is free

marshal()

Or addPreData() or addPostdata()

Page 41: 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

41

Generación del modelo

Clase instrumentada por RTCode4TimeMntr/* *@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);

}

}

}

Page 42: 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

42

Generación del modelo

Modelo obtenido con TimeMntr<!-- "Perturbograph.PerturbographExecutor_1e51060" Executor model-->

<mast_mdl:Thread Name="Perturbograph.PerturbographExecutor_1e51060.thread" Scheduler="platformNode.sheduler">

<mast_mdl:Fixed_Priority_Params Priority="41"/>

</mast_mdl:Thread>

<mast_mdl:Enclosing_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">

<mast_mdl:Operation Name="Perturbogram_9ed927.awaitPerturborgram"/>

<mast_mdl:Operation Name="Perturbogram_9ed927.marshall"/></mast_mdl:Enclosing_Operation>

Page 43: 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

43

Generación del modelo

Modelo obtenido con TimeMntr<!-- "Metrology.MetrologyExecutor_1a679b7" Executor model-->

<mast_mdl:Thread Name="Metrology.MetrologyExecutor_1a679b7.thread" Scheduler="platformNode.sheduler">

<mast_mdl:Fixed_Priority_Params Priority="47"/>

</mast_mdl:Thread>

<mast_mdl:Regular_End_To_End_Flow Name="Metrology.MetrologyExecutor_1a679b7.e2ef">

<mast_mdl:Periodic_Event Name="trigger" Period="0E0"/>

<mast_mdl:Internal_Event Name="end">

<mast_mdl:Hard_Global_Deadline Referenced_Event="trigger" Deadline="0E0"/>

</mast_mdl:Internal_Event>

<mast_mdl:Internal_Event Name="internalEvent0"/>

<mast_mdl:Step Input_Event="trigger" Output_Event="internalEvent0"

Step_Schedulable_Resource="Metrology.MetrologyExecutor_1a679b7.thread"

Step_Operation="Metrology.MetrologyExecutor_1a679b7.response"

Hold_Schedulable_Resource="NO"/>

<mast_mdl:Step Input_Event="internalEvent0" Output_Event="end"

Step_Schedulable_Resource="Perturbograph.PerturbographExecutor_1e51060.thread"

Step_Operation="Perturbograph.PerturbographExecutor_1e51060.response"

Hold_Schedulable_Resource="NO"/>

</mast_mdl:Regular_End_To_End_Flow>

Page 44: 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

44

Tabla de contenidos

Introducción Herramienta RTLinuxNodeModelEstimator Módulo TimeMntr Herramienta RTCode4TimeMntr Aplicación BURTA Conclusiones y trabajo futuro

Page 45: 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

45

Conclusiones y trabajo futuro

Resultados satisfactoriosAplicaciones 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

Page 46: 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

46

Gracias por su atención, ¿preguntas?