leiden workshop 20/06/2007 0 presentation of the cadp toolbox cadp toolbox what is cadp ? lotos...

14
20/06/2007 1 Leiden Workshop Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended for performance evaluation IMC formalism From LOTOS to Markov chain From LOTOS to Markov chain – example - Tools for performance evaluation

Post on 19-Dec-2015

261 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 1Leiden Workshop

Presentation of the CADP toolbox

CADP toolboxWhat is CADP ?LOTOS languageTools for functional verification

CADP extended for performance evaluationIMC formalismFrom LOTOS to Markov chainFrom LOTOS to Markov chain – example -Tools for performance evaluation

Page 2: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 2Leiden Workshop

CADP:« Construction and Analysis of Distributed Processes »

Developped at INRIA Rhônes-Alpes (France) by the VASY team

Toolbox for the design of communication protocols and distributed systems.

What is CADP?

Page 3: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 3Leiden Workshop

LOTOS language

LOTOS = Process Algebra (CCS & CSP) +

Abstract Data Type Algebra (ACT-ONE)caesar.adt compiler

caesar compiler

Page 4: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 4Leiden Workshop

PUSH

process queue_behavior [PUSH , POP] (SMax:Nat, Q: Queue) : noexit := [getCurrentSize(Q)<SMax] -> PUSH; queue_behavior[PUSH , POP] (SMax,Push(Q)) [] [getCurrentSize(Q)>0] -> POP; queue_behavior[PUSH , POP] (SMax,Pop(Q)) endproc

POP

PUSH

POP

PUSHPOP

LOTOS language

bcg format

Page 5: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 5Leiden Workshop

PUSHPOP

Physicalqueue

memory

TO_MEM FROM_MEM

memory.bcg = generation of memory.lotos;phys_queue.bcg = generation of phys_queue.lotos;

system.bcg = memory.bcg |[TO_MEM, FROM_MEM]| phys_queue.bcg;

queue.bcg = hide TO_MEM, FROM_MEM in system.bcg

LOTOS language

Page 6: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 6Leiden Workshop

Tools for functional verification

Model checking on the LTSVarious temporal logics and mu-calculus (evaluator, XTL)

Equivalence checkingMinimization and comparisons modulo bisimulations relations(bcg_min, bisimulator)

Simulation & co-simulationVisual checking (bcg_edit)Step-by-step simulation (ocis)C simulator (caesar –simulator)

Page 7: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 7Leiden Workshop

The behavior of a physical system can often be represented by :All the states the system may occupyHow the system move from one state to another

Functional behavior: (LTS)

action based

Timed behaviour: (CTMC)

time based

rate λ

rate μ

rate λrate μ

PUSH

POP

PUSHPOP

Performance measuresNo composition, synchronization…

↓ ↓ ↓Performance evaluation

of complex systems reserved to specialists

CompositionConcurrencySynchronization

↓ ↓ ↓Description of large

systems

&& Formal verification

IMC

IMC formalism

Page 8: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 8Leiden Workshop

IMC formalism

IMC

Interactive transitionsSynchronizationComposition

Markovian transitionsRepresent delays

Hiding of Markovian transitions and minimization

LTS

Hiding of Interactive transitions and stochastic minimization

CTMC

1 model

Functional verification

Performance evaluation

Page 9: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 9Leiden Workshop

Performance evaluation with LOTOS/CADP :

Introduction of Markov transitions in LOTOS models.≈ Introduction of delays in LOTOS models.

=> Generation of an Interactive Markov Chain (IMC)

Identifying the start and end of relevant timing delays in the

model1

Exposing each start and end as LOTOS

gates2

Identifying the distribution of the

delay3

Approximating the delays as CTMC

4

Embedding each delay into start/end

gates5

From LOTOS to Markov chains

Page 10: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 10Leiden Workshop

Time between 2 PUSH (δ1)

Time between 2 POP (δ2)

Time needed to process a PUSH (λ)Time needed to process a POP (μ)

Exposing each start and end as LOTOS

gates2

Identifying the distribution of the

delays3

Approximating the delays as CTMC

4

Embedding each delay into start/end

gates5

Identifying the start and end of relevant timing delays in the

model 1

ENVIRONMENT ENVIRONMENTSYSTEM

RSP

PUSH_RQ

GENERATOR

QUEUE[ PUSH_RQ, PUSH_RSP,

POP_RQ, POP_RSP,]CONSUMER

PUSH_RSP

POP_RQ

POP_RSP

RQ RSP

RQ

PUSH

time

RQ RSP

POP

RQ RSP

RQ RSP

QUEUE[ PUSH_RQ, PUSH_RSP,

POP_RQ, POP_RSP,λ_START, λ_STOP,μ_START, μ_STOP ]

GENERATOR […] :δ1_START; δ1_STOP; PUSH_RQ !DATA; PUSH_RSP; GENERATOR […]

CONSUMER […] :δ2_START; δ2_STOP; POP_RQ; POP_RSP ?Elmt; CONSUMER […]

Proba

time

1

0

GEN_DELAY

δ1 _S

TO

P

δ1_S

TA

RT

PUSH_DELAY

λ_S

TO

P

λ_S

TA

RT

POP_DELAY

μ_S

TO

P

μ_S

TA

RT

CONS_DELAY

δ2_S

TA

RT δ

2 _STO

P

POP_DELAY […] :μ_START; μ_DELAY; μ_DELAY; μ_STOP; POP_DELAY […]

PUSH_DELAY […] :λ_START; λ_DELAY; λ_DELAY; λ_STOP; PUSH_DELAY […]

GEN_DELAY […] :δ1_START; δ1_DELAY; δ1_STOP; GEN_DELAY […]

CONS_DELAY […] :δ2_START; δ2_DELAY; δ2_STOP; CONS_DELAY […]

From LOTOS to Markov chains- example -

Page 11: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 11Leiden Workshop

Performance evaluation with LOTOS/CADP :

Introduction of Markov transitions in LOTOS models.≈ Introduction of delays in LOTOS models.

=> Generation of an Interactive Markov Chain (IMC)

Hiding of the non-Markovian transition and minimisation

=> generation of a Markov Chain (CTMC)

Performance evaluation based on the analysis of these CTMC.

Identifying the start and end of relevant timing delays in the

model1

Exposing each start and end as LOTOS

gates2

Identifying the distribution of the

delay3

Approximating the delays as CTMC

4

Embedding each delay into start/end

gates5

From LOTOS to Markov chains

Page 12: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 12Leiden Workshop

Tools for performance evaluation

Stochastic minimization (bcg_min)Based on the maximum progress rule

=> generation of a Markov Chain (CTMC)

Performance evaluation based on the analysis of a CTMC.Transient state probabilities (bcg_transient)Steady state probabilities (bcg_steady)Throughput results (-thr option)

Use of the state probabilities for more complex measuresWeighted sum of the state probabilities

Mean queue lengthMean time before failure…

API in CADP for graph exploration for this kind of computation

Page 13: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 13Leiden Workshop

Summary : performance evaluationmy_model_with_start_and_stop_delay_gates.bcg =

generation of my_model_with_start_and_stop_delay_gates.lotos;my_delay1.bcg = generation of my_delay1.lotos;…my_delayN.bcg = generation of my_delayN.lotos;

my_imc.bcg =( ( ( my_model_with_start_and_stop_delay_gates.bcg

|[DL1_START, DL1_STOP]| my_delay1.bcg ) |[...]| … ) |[DLN_START, DLN_STOP]| my_delayN.bcg

);

my_mc.bcg = stochastic reduction of hide …. in my_imc.bcg

%bcg_steady –sol my_mc.sol my_mc.bcg

Page 14: Leiden Workshop 20/06/2007 0 Presentation of the CADP toolbox CADP toolbox What is CADP ? LOTOS language Tools for functional verification CADP extended

20/06/2007 14Leiden Workshop

More information at :http://www.inrialpes.fr/vasy/cadp/

free of charge for universities and public research centers

Toolbox written in C and available for:SolarisLinuxWindowsMacOS

Questions ?

Conclusion