leiden workshop 20/06/2007 0 presentation of the cadp toolbox cadp toolbox what is cadp ? lotos...
Post on 19-Dec-2015
261 views
TRANSCRIPT
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
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?
20/06/2007 3Leiden Workshop
LOTOS language
LOTOS = Process Algebra (CCS & CSP) +
Abstract Data Type Algebra (ACT-ONE)caesar.adt compiler
caesar compiler
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
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
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)
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
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
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
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 -
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
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
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
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