View
34
Download
1
Category
Tags:
Preview:
DESCRIPTION
On Using Tracer Driver for External Dynamic Process Observation. Pierre Deransart January 29, 2007 REWERSE WP I3 meeting Dresden. Les unités de recherche. Rocquencourt. Loria. Rhône-Alpes. Irisa. Sophia Antipolis. Futurs. CONTEXT, HISTORY. From DiSCiPl to OADymPPaC - PowerPoint PPT Presentation
Citation preview
1
Pierre Deransart Rewerse-WP I3 1
On Using Tracer Driver for External Dynamic Process Observation
Pierre DeransartJanuary 29, 2007REWERSE WP I3 meetingDresden
2
Pierre Deransart Rewerse-WP I3 2
LoriaRocquencourt
Sophia Antipolis
Irisa
Rhône-Alpes
Futurs
Les unités de recherche
3
Pierre Deransart Rewerse-WP I3 3
CONTEXT, HISTORY
From DiSCiPl to OADymPPaC
•DiSCiPl (1997-2000): enhance constraint debugging: resulted in prototypes, but still ad-hoc tools for correctness and performance analysis
•OADymPPaC (2001-2004) main challenges• Interoperability of tools: make analysis tool development easier --> "standardisation"
of the CP platforms and tools parameterisation
• Scaling: increase the size of the problems which can be analysed this way (hundreds of variables or constraints) ----> enable using specialized HMI
Resulted in powerful analyzers (prototypes and products), but still prototype tools for performance analysis
Also still an approach limited to finite domains constraint solving
4
Pierre Deransart Rewerse-WP I3 4
OADymPPaC Realizations
5
Pierre Deransart Rewerse-WP I3 5
GENERICITY and INTEROPERABILITY PRINCIPLES
6
Pierre Deransart Rewerse-WP I3 6
NEW PROBLEMS
OADymPPaC raised unsolved questions:
•Trace Semantics (related to its genericity): what is the exact nature of the “Observational Semantics”
•Modeling of the Interactions between Observed Process and Analysis Tools
•How to keep the whole system efficient (need to evaluate efficiency)
•Is the approach generic itself? Can it be applied to new domains (not just constraints) in particular in software engineering
7
Pierre Deransart Rewerse-WP I3 7
Ways to ANSWER to the PROBLEMS
•Trace Semantics (related to its genericity): what is the exact nature of the “Observational Semantics”: model of trace for a family of processes
•Modeling of the Interactions between Observed Process and Analysis Tools: Introduction of Tracer Driver and Analyzer Manager
•How to keep the whole system efficient (need to evaluate efficiency): Concepts of Virtual full Trace, Actual incremental Trace extraction and rebuilding
•Is the approach generic itself? Can it be applied to new domains (not just constraints) in particular in software engineering can the approach (full trace with partial OS, interactive tracer driver) be applied in new domains
8
Pierre Deransart Rewerse-WP I3 8
RELATIONSHIPS with REWERSE (attempt)
•Genericity of traces and trace querying
•Semantics (web) mining and observational semantics: looking for combination of traces and models “explaining” the traces
•Software Composition vs Trace Composition
•Relations action vs event: actions produce (trace) event
9
Pierre Deransart Rewerse-WP I3 9
HISTORY
•Ducassé, Opium: versatile analyzers
•Ducassé, Noyer, 1994, JLP: independence of tracer and analyzers
•Langevine & Ducassé & Deransart, 2003, ICLP’03: Codeine, First Driven Tracer approach implementation for GNU-prolog
•Deransart & all, 2004, OADymPaC project: client/server architecture, trace standardization (XML) for interoperability
•Langevine & Deransart & Ducassé, 2004, LNAI 3010: model of « generic trace » for constraint programming
•Langevine & Ducassé, 2005, AADEBUG, WLPE: Driven Tracer for FD constraints and experimentation
•Now, 2006: « theory » of generic trace and driven tracer =
virtual full trace, actual incremental trace and observational semantics
10
Pierre Deransart Rewerse-WP I3 10
OBJECTS OF STUDIES
•Traces
•Interactions and Tracer Driver
•Observational Semantics of traces
11
Pierre Deransart Rewerse-WP I3 11
TRACESTRACES
12
Pierre Deransart Rewerse-WP I3 12
TRACESTRACES
13
Pierre Deransart Rewerse-WP I3 13
« Leave traces, not proofs, only traces give dreams »
René Char
Poète
(1907-1988)
« Laisser des traces, pas des preuves, seules les traces peuvent faire rêver »
René CharPoète(1907-1988)
14
Pierre Deransart Rewerse-WP I3 14
SOME MOTIVATIONS
Dynamic Program Analysis: typical recent works are based on trace analysis
•Ernst & al. 2001: “Dynamically discovering likely program invariants…” from data computed by dynamic execution
•Denmat & al. 2005 “Data mining and Cross-checking of Execution Traces…” from a collection of traces
•Zaidman & al. 2005 “Applying Webmining Techniques to Execution Traces…”
15
Pierre Deransart Rewerse-WP I3 15
WHY TRACES ?Any phenomenon, any open system leaves traces
•Walking (persistent foot traces)•Sedimentation (temporally accumulated traces), fossils•Particles (light): objects only known by their physical or chemical properties•Programs (outputs, observation)•Communication (messages)•Discourse abstract•Human Memory…(persistent and reactive)
Traces are everywhere: we only know processes by their traces
16
Pierre Deransart Rewerse-WP I3 16
OBSERVING PROCESSESEverybody watches everyones…..
Everybody receives from everyone
Everybody sends messages to …
17
Pierre Deransart Rewerse-WP I3 17
We know and define complex objects from the traces they leave
We know complex programs behaviour by analyzing their traces
Causal analysis is not tractable likely causality
TRACE modeling is the right approach
18
Pierre Deransart Rewerse-WP I3 18
BUT, what IS a TRACE ???
HOW to ANALYSE IT ???
I want to leave these questions open
….small demo
19
Pierre Deransart Rewerse-WP I3 19
What IS a TRACE ???
the answer is:Any possible understandable information related to an observed phenomenon
PRO
•Any observing device will find in the trace what it needs
•If a process needs instrumentation to produce a trace, this need only to be made once
•Analysis tools may be developed independently
20
Pierre Deransart Rewerse-WP I3 20
CON:
- it is not possible to broadcast such a huge information flow (communication slowing down)
-then the observed process always computes a huge amount of unused data (construction slowing down)
21
Pierre Deransart Rewerse-WP I3 21
SPECIFIC ASPECTS
Needs for trace standardization
•All levels of granularity accepted
•Different kinds of information included (levels of abstraction)
•Each analyzer must be able to recognize its relevant information
•Use of XML to define possible standards
22
Pierre Deransart Rewerse-WP I3 22
SEEMS an UNREALISTIC GOAL !!!
the answer is:Driven Tracer
SPECS
•selects in the trace what the observer needs
•keeps tracer listening to the analyzers (dialog between server and clients)
•Leave the tracer to distribute and broadcast each specific trace
•Allow workload repartition between tracer and analysers
23
Pierre Deransart Rewerse-WP I3 23
VIRTUAL FULL TRACE (VFT definition)
unbounded sequence of trace events of the form
et: (t, at, St+1) •et: unique identifier of the event •t: chrono. Time of the trace•at: kind of event, an identifier characterizing the kind of actions from which the process changed from St to St+1
•St = p1,t..., pn,t : values of parameters at chrono t. St is the full current state
24
Pierre Deransart Rewerse-WP I3 24
ACTUAL TRACEunbounded sequence of actual events of the form e’t: (t, at, At)
such that, there exists a function f, such that for each event e’t = f( et, St).
At denotes a set of attribute values. The actual trace is the trace emitted by a tracer, which can actually be “visible”.
The virtual full trace is a particular case of actual trace where f is the identity, i.e.the attributes of At are the kind of event at and the parameter values St+1.
25
Pierre Deransart Rewerse-WP I3 25
Different kinds of attributes
•f(p) = p, ex “CPU time”
•f(p) = (p), current parameter abstraction, ex “depth of the proof tree”
•attrt = f( pt+1, St), incremental attribute, ex “values removed from the domain of a variable”
P: parameter(s)
26
Pierre Deransart Rewerse-WP I3 26
INCREMENTAL TRACE(full actual)
An actual trace is incremental if the attributes describe only the changes affecting the current state, i.e. for every t
et = F (e’t,subpart(St))
F is the “Observational Semantics” (OS)
It verifies also: (if all attributes incremental)
St+1 = F(At,St)
27
Pierre Deransart Rewerse-WP I3 27
OBSERVATIONAL SEMANTICSTrace:
et: (t, at, St+1)
There exists a function f, such that for each event
e’t = (t, at, At) = f( et, St)
This is trace extraction : At = f( St, St+1)
The “Observational Semantics” (OS) is a kind of partial “explanation”):
St+1 = F(At,St) (full actual, otherwise )
(F used for rebuilding)
28
Pierre Deransart Rewerse-WP I3 28
EXAMPLE (actual trace)
1 1 Call: '$call$'(bench(2)) 2 2 Call: bench(2) 3 3 Call: 2>0 3 3 Exit: 2>0 4 3 Call: _182 is 2-1 4 3 Exit: 1 is 2-1 5 3 Call: bench(1) ....
29
Pierre Deransart Rewerse-WP I3 29
30
Pierre Deransart Rewerse-WP I3 30
Gentra4CP format<post chrono="8" depth="1" cident="c2" />
<solved chrono="9" depth="1" cident="c2" />
<new-variable chrono="10" depth="1" vident="v3" vinternal="_#47" vname="V3">
<vardomain min="1" max="4" size="4">
<range from="1" to="4" />
</vardomain>
</new-variable>
<new-constraint chrono="11" depth="1" cident="c3" cinternal="fd_domain(v3,1,4)" orig="user">
<state>
<constraint cident="c3" cinternal="fd_domain(v3,1,4)" status="just_declared" orig="user">
<variables>v3</variables>
</constraint>
</state>
</new-constraint>
<post chrono="12" depth="1" cident="c3" />
<solved chrono="13" depth="1" cident="c3" />
<new-variable chrono="14" depth="1" vident="v4" vinternal="_#69" vname="V4">
<vardomain min="1" max="4" size="4"> <range from="1" to="4" /> </vardomain>
</new-variable>
31
Pierre Deransart Rewerse-WP I3 31
01 17 16:53:37 kok ker: Additional sense indicates Medium not present01 17 16:53:37 kok ker: sdb : block size assumed to be 512 bytes, disk size 1GB. 01 17 16:53:37 kok ker: /dev/scsi/host1/bus0/target0/lun0: I/O error: dev 08:10, sector 001 17 16:53:37 kok ker: I/O error: dev 08:10, sector 001 17 16:53:37 kok ker: unable to read partition table01 17 16:53:37 kok ker: usb.c: registered new driver usbdevfs01 17 16:53:37 kok ker: usb.c: registered new driver hub01 17 16:53:37 kok ker: usb-uhci.c: $Revision: 1.275 $ time 09:50:48 Aug 17 200501 17 16:53:37 kok ker: usb-uhci.c: High bandwidth mode enabled01 17 16:53:37 kok ker: usb-uhci.c: USB UHCI at I/O 0x2440, IRQ 1901 17 16:53:37 kok ker: usb-uhci.c: Detected 2 ports01 17 16:53:37 kok ker: usb.c: new USB bus registered, assigned bus number 101 17 16:53:37 kok ker: hub.c: USB hub found01 17 16:53:37 kok ker: hub.c: 2 ports detected01 17 16:53:37 kok ker: usb-uhci.c: USB UHCI at I/O 0x2460, IRQ 2301 17 16:53:37 kok ker: usb-uhci.c: Detected 2 ports01 17 16:53:37 kok ker: usb.c: new USB bus registered, assigned bus number 201 17 16:53:37 kok ker: hub.c: USB hub found01 17 16:53:37 kok ker: hub.c: 2 ports detected01 17 16:53:37 kok ker: usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
Messages Linux File
32
Pierre Deransart Rewerse-WP I3 32
Actual Trace Requirements
•The actual trace may likely be the full virtual trace (attributes are the parameters)
•It may be discontinuous, then the full current state shall be available at any time on
demand
•It should likely incorporate complex objects built from the VFT
•It should cover large application domains and many observation methods
•It should have a clear semantics (OS): the OS allows to rebuild original states from the
trace (assuming that the full current state is known at some moment from which the
trace is continuous)
33
Pierre Deransart Rewerse-WP I3 33
INTERACTIONINTERACTIONS and S and
TRACER TRACER DRIVERDRIVER
34
Pierre Deransart Rewerse-WP I3 34
ObservedProcess
Virtual Full Trace ActualFull Trace
Classical Approach (general broadcasting)
Tracer
Filter/Builder
ObservingProcess
35
Pierre Deransart Rewerse-WP I3 35
ObservingProcessObserved
Process
Virtual Full Trace
TracerFilter/
BuilderActualFull Trace
Classical Approach (general broadcasting)
36
Pierre Deransart Rewerse-WP I3 36
Driven Tracer Approach (requested trace only)
Virtual Full Trace
ObservingProcessObserved
Process
TracerBuilder
RequestedV. Trace
ActualRequested
Trace
DriverFilter/
Manager
37
Pierre Deransart Rewerse-WP I3 37
Workload Analysis
• Program (without connections with tracer) T_prog
• Tracer (parameters and attributes computation) T_core + T_extract
• Driver (dialog and attributes selection) T_cond
• Broadcasting (all traces encoding) T_encode-and-com
====================================================
• Trace decoding T_decode
• Trace filtering T_ filter
• Trace rebuilding T_rebuild
• Analyzer execution T_ana
38
Pierre Deransart Rewerse-WP I3 38
Workload AnalysisProcess
---------------
| |
T_prog + T_core1
Tracer/Driver-----------------------------------------------| |
T_core2 + T_cond + T_extract + T_encode-and-com
=========================================================
Analyzer/Builder/Manager------------------------------------------
| |
T_decode + T_filter + T_rebuild + T_ana
39
Pierre Deransart Rewerse-WP I3 39
Workload balanceProcess and Tracer---------------
| |
T_prog + T_core
Analyzer---------
| |T_ana
Manager---------
| |T_filter
Driver---------
| |T_cond
Tracer---------
| |T_extract
Builder---------
| |T_rebuild
Tracer----------------- | |T_ encode-and-com
Manager---------| |T_decode
==================================================
40
Pierre Deransart Rewerse-WP I3 40
Workload Evaluation: processesProcess and Tracer---------------
| |
T_prog + T_core
Analyzer---------
| |T_ana
==============
•A (sophisticated) analyzer may be extremely slow
•With large virtual full traces T_core may become important but is thus balanced by T_ana (example: explanations in Gnu-Prolog and graph visualization)
•It is also possible to extend the full trace with complex objects built on demand (genericity of the VFT is not affected, only T_extract)
41
Pierre Deransart Rewerse-WP I3 41
Workload Evaluation: Driver/ManagerManager---------
| |T_filter
Driver---------
| |T_cond
========
• This is the key point of the Driver approach: the manager filters a large broadcasted full actual trace or alternatively the driver filters the trace events (and selects few events wrt the full trace) before the actual trace is extracted.
• This makes the approach efficient because the selection consists of 2 steps:1. on the kind of events (assumes a finite relatively small number
of kind of events)2. other criteria may be considered during extraction step, but
applied on relatively few events
42
Pierre Deransart Rewerse-WP I3 42
Workload Evaluation: extraction/rebuildingTracer
--------- | |T_extract
Builder---------
| |T_rebuild
=========
•Attributes extraction with complex criteria may be relatively slow, but only relatively few events are subject to this operation
•State reconstruction by the Builder may be slower (the virtual state may not be explicitly constructed by the process when it may be in the Builder).
•The Builder must also prepare the data for the analyzer (ex: build table models for visualization tool)
43
Pierre Deransart Rewerse-WP I3 43
Workload Evaluation: encode/comm/decodeTracer
----------------- | |T_ encode-and-com
Manager---------| |T_decode
=========
•The actual trace may be encoded with different methods in order to optimize the broadcasted data flow: compression, binary conversion … etc. But the implies an equivalent work from the Manager.
•This is not specific to this approach. It just shows that verbose XML may be used. There are proposals to compress XML (e.g. http://www.w3.org/TR/wbxml)
44
Pierre Deransart Rewerse-WP I3 44
Evaluation of workload balance (Ad-hoc Approach)
Process and Tracer---------------
| |
T_prog + T_core
Analyzer---------
| |T_ana
Manager---------
| |T_filter
Driver---------
| |T_cond
Tracer---------
| |T_extract
Builder---------
| |T_rebuild
Tracer----------------- | |T_ encode-et-com
Manager---------| |T_decode
=============================================
++
+0
+
+ +
45
Pierre Deransart Rewerse-WP I3 45
Evaluation of workload balance (Tracer Driver Approach)
Process and Tracer---------------
| |
T_prog + T_core
Analyzer---------
| |T_ana
Manager---------
| |T_filter
Driver---------
| |T_cond
Tracer---------
| |T_extract
Builder---------
| |T_rebuild
Tracer----------------- | |T_ encode-et-com
Manager---------| |T_decode
==================================================
+ +
+
0+
46
Pierre Deransart Rewerse-WP I3 46
Summary•Ad-hoc Approach
• The full actual trace is treated, resulting in excessive tracer extraction, coding and communication times.
• The full actual trace must be decoded and filtered by the Manager.• This imposes to reduce the size of the trace at the source, restricting
reusability of the trace by different tools.
•Tracer Driver Approach• There is no limit of the trace size (except extra computation costs due to
core computations preparing extraction of a huge virtual trace). The tracer may be designed for a large collection of potential uses.
• Additionally to the tracer a driver must be implemented. But the additional driving time can be low and extraction, coding and communication times may be very reduced (provided that, even if several analyzers are active, only a small part of the virtual full trace is used).
47
Pierre Deransart Rewerse-WP I3 47
DRIVER/MANAGER REQUIREMENTSDriver (server)
•Analyze trace queries
•Store and manage requested trace patterns
•Manage the dialog between server (tracer) and clients (analyzers)
•Tell the tracer what to extract and to broadcast
Manager (client)
•Select the trace events for its analyzer (verify trace adequacy)
•Elaborate and send queries
•Manage the dialog between server (tracer) and clients (analyzers)
48
Pierre Deransart Rewerse-WP I3 48
Language of Interactions
Basic instructions between driver (server) and mediator (client). A persistent set of conditions, compiled as a finite automaton, serves for the current trace event selection.
•Manager commands (sent to the driver)• current (in sync mode): request to send particular attributes• resume (start async mode)• update (sync or async mode): modifies the event selection conditions• interrupt (emergency signal to stop – may be issued by any external
process): pipe is broken and some trace events may be lost.
•Driver commands (sent to the manager in trace events)• breakpoint (start sync mode): tracer is waiting for commands• provide (in sync mode): level of the actual trace• complement (in sync mode): additional info or current state as requested by
current
49
Pierre Deransart Rewerse-WP I3 49
OBSERVATIOOBSERVATIONALNAL
SEMANTICSSEMANTICS
50
Pierre Deransart Rewerse-WP I3 50
OBSERVATIONAL SEMANTICSTrace:
et: (t, at, St+1)
There exists a function f, such that for each event
e’t = (t, at, At) = f( et, St)
The attributes describe only the changes affecting the current state, i.e. for every t
et = F (e’t,subpart(St))
F is the “Observational Semantics” (OS)
One may just consider the relevant elements:
Trace extraction: At = f( St, St+1)
Trace rebuiling: St+1 = F(At,St)
51
Pierre Deransart Rewerse-WP I3 51
Trace extraction, communication and rebuilding
ObservedProcess
Virtual Full Trace
Tracer
ObservingProcess
RebuiltVirtual
Full Trace(all
related infos)
Re-building
ActualFull Trace
Filter/Builder
Extraction
Communication
52
Pierre Deransart Rewerse-WP I3 52
A very simple example: imprecise clock
Example of trace
•Initial state (event “0”): [0, 0]•Virtual full trace (events 1 to 8):
[[1,0], [2,2], [3,3], [ 4,4], [5,5], [6,6], [7,6], [8,6] |_]•Actual full trace:
[[1,0], [2,2], [3,1], [4,1], [5,1], [6,1], [7,0], [8,0] |_]•Rebuilt virtual full trace:
[[1,0], [2,2], [3,3], [4,4], [5,5], [6,6], [7,6], [8,6] |_]
53
Pierre Deransart Rewerse-WP I3 53
A very simple example: imprecise clocktrace( [[T1,VST1],[T2,VST2]|VTr], [[T1,AT1],[T2,AT2]|ATr] , [T1,BT1],[T2,BT2]|BTr] )
:- incrchrono(T1,T2),
impwatch(VST1,VST2,I),
extract(AT1,AT2,I),
rebuild(BT1,AT2,BT2),
trace( [[T2,VST2]|VTr], [[T2,AT2]|ATr], [[T2,BT2]|BTr] ).
incrchrono(T1,T2) :- T2 is T1+1.
impwatch(ST1,ST2,I):- random(0,3,I),ST2 is ST1+I.
extract(_,AT2,I) :- AT2 is I.
rebuild(ST1,AT1,ST2) :- ST2 is ST1+AT1.
54
Pierre Deransart Rewerse-WP I3 54
EXAMPLE (Bird’s Prolog actual trace)
1 1 Call: '$call$'(bench(2)) 2 2 Call: bench(2) 3 3 Call: 2>0 3 3 Exit: 2>0 4 3 Call: _182 is 2-1 4 3 Exit: 1 is 2-1 5 3 Call: bench(1) ....
4 “ports” or event types: CALL / EXIT / REDO / FAIL
55
Pierre Deransart Rewerse-WP I3 55
Example: Prolog Bird’s Trace Virtual full state S
•A program P (set of clauses)
•Proof Tree (PT): set of ordered labeled nodes n•Labels of n: ({clause(n), failed}, nondet(n))•clause is a function PT inst(P)•nondet is a function PT {true,false} (true iff non deterministic node)
•cn the current node in state SObservations: •each node labeled by a clause instance has a related predication which is the head of the clause•A node is non deterministic as long as there is some non used clause of P whose predicate p is the same as the predicate name of its related predication
56
Pierre Deransart Rewerse-WP I3 56
SO of Bird’s Prolog TraceInitial state: a single deterministic node with label “goal” labeled by a[n instance of the] goal clause, cn is the first leaf.
•CALL pred If cn leaf(PT) and pred is the related predication of cnthen PT is expanded with clause(cn) [and cn is marked det/nondet] and cn’ is the next leaf
•EXIT pred If pred is the related predication of cn and the subtree of root cn has been successfully completed
then cn’ is the next leaf
•REDO pred
then cn’ is the closer previous non deterministic node and all complete subtrees between cn’ and cn are removed and pred is the related predication of cn’ and PT is expanded with clause(cn’)
•FAIL If cn leaf(PT) and pred is the related predication of cnthen cn’ is the next leaf, if any, root ‘goal’ otherwise
57
Pierre Deransart Rewerse-WP I3 57
Trace explanation in proof style
1: CALL p: prove p with the theorem (clause) p:-q,r. and go to prove q and r (prove q first)
2: CALL q: prove q with the theorem q:-u1. and go to prove u1
3: CALL u1: u1 is a fact (clause: u1:-true.) then it is true.
4: EXIT u1: u1 is proven. Continue to the next unproved lemma
5: CALL r: r is a fact (clause: r:-true.) And follow subtree
4: EXIT p: the proof of p is completed.
58
Pierre Deransart Rewerse-WP I3 58
Even simpler SO of Bird’s Prolog Trace
OS: « explicative semantics », not operational
Virtual full trace describing PT evolution
Call: visit next node and extend PT
Exit: leave PT, subtree beeing successfuly solved
Redo: visit new choice point in the subtree (if any)
Fail: failed proof using this subtree and no choice point anymore in the subtree
59
Pierre Deransart Rewerse-WP I3 59
Driven Tracer Approach (requested trace only)
Virtual Full Trace
ObservingProcessObserved
Process
TracerBuilder
RequestedV. Trace
ActualRequested
Trace
DriverFilter/
Manager
60
Pierre Deransart Rewerse-WP I3 60
Virtual Full Trace: all possible observations
Virtual Full Trace
ObservedProcessO.T.D
RequestedTrace 2
ObservingProcess 2O.B.M
RequestedTrace 1
ObservingProcess 1O.B.M
RequestedTrace 3
ObservingProcess 3O.B.M
61
Pierre Deransart Rewerse-WP I3 61
Generic Virtual Full Trace: observing a family of processes
Virtual Full Trace 1Observing
ProcessO.B.M
ObservedProcess 1O.T.D
ActualRequested
Trace 1
Virtual Full Trace 2
ObservedProcess 2O.T.D
ActualRequested
Trace 2
62
Pierre Deransart Rewerse-WP I3 62
Generic/Specialized OBSERVATIONAL SEMANTICS
some points
•Generic OS depends from the considered family of observed processes: it is the “union” of the virtual full traces of all the observed processes.•Generic OS depends from the considered family of observing processes (analyzers): it is the “union” of generic attributes requested by all the analyzers.•Generic OS deals with generic states and generic attributes•A subset of the generic states has 1-1 correspondence with (a subset of) specialized states.•A subset of the generic attributes has 1-1 correspondence with (a subset of) specialized attributes
63
Pierre Deransart Rewerse-WP I3 63
Specialized Vf trace 3
Specialized Vf trace 2
Specialized Vf trace 1
ObservingProcess 2O.B.M
ObservedProcess 1O.T.D
ObservedProcess 2O.T.D
ObservedProcess 3O.T.D
ObservingProcess 1O.B.M
ObservingProcess 3O.B.M
ObservingProcess 4O.B.M
Generic Virtual Full Trace
64
Pierre Deransart Rewerse-WP I3 64
METHOD for defining a GOSBuild the generic model for the trace (GOS)
•Define the virtual states (parameters) S•Define the kind of events a and the attributes A (Generic Trace Scheme)
•Define the Observational semantics as the function Fa:
Family indexed by a: S’ = Fa(A,S)
For each observed process build the specific virtual trace model (same steps but OS and Specialized Trace Scheme)
Relate both models (OS and trace schemes) such that there is an isomorphism between kinds of actions, states and attributes of both models.
65
Pierre Deransart Rewerse-WP I3 65
Examples
•FD Constraint Solver Generic Observational Semantics and GT scheme•Correspondence with GNU-Prolog•Correspondence with Choco•Correspondence with PaLM•Correspondence with CHR(FD)
66
Pierre Deransart Rewerse-WP I3 66
Example: Generic FD constraint solver
Virtual full state S: (Solver state) So Spt (Choice Tree state)
So : { …}
Spt : { N, , , (N) }
•N : Search Tree, set of ordered labeled nodes
: N So
•failed: So Bool, unsatisfiable store (rejected)
•solution: So Bool, satisfiable store (successful)
•choice-point: So Bool (true iff non deterministic node)
: N, last visited node (current visited node)
: {N} (natural integers), depth of the Choice Tree
67
Pierre Deransart Rewerse-WP I3 67
Example: Generic FD constraint solver
Attributes A: Attributes related to the control part Apt
Spt : { N, , , (N) }Apt : { v, Dv, v, b, a, c, d }
•v : variable
•Dv : current domain of a variablev : sub domain of a variable
b : previously visited node (before)
a : current visited node (after)
•c : constraint
•d : depth of the Search Tree
68
Pierre Deransart Rewerse-WP I3 68
69
Pierre Deransart Rewerse-WP I3 69
TITRE
Mon texte
•Jkjl
•hjk
70
Pierre Deransart Rewerse-WP I3 70
GOS: constraint propagation
Mon texte
•Jkjl
•hjk
71
Pierre Deransart Rewerse-WP I3 71
72
Pierre Deransart Rewerse-WP I3 72
GNU-Prolog specialized OS
Mon texte
•Jkjl
•hjk
73
Pierre Deransart Rewerse-WP I3 73
TITRE
Mon texte
•Jkjl
•hjk
74
Pierre Deransart Rewerse-WP I3 74
TITRE
Mon texte
•Jkjl
•hjk
75
Pierre Deransart Rewerse-WP I3 75
TITRE
Mon texte
•Jkjl
•hjk
76
Pierre Deransart Rewerse-WP I3 76
TITRE
Mon texte
•Jkjl
•hjk
77
Pierre Deransart Rewerse-WP I3 77
TITRE
Mon texte
•Jkjl
•hjk
78
Pierre Deransart Rewerse-WP I3 78
TITRE
Mon texte
•Jkjl
•hjk
79
Pierre Deransart Rewerse-WP I3 79
TITRE
Mon texte
•Jkjl
•hjk
80
Pierre Deransart Rewerse-WP I3 80
Application to CHR(FD)
Method:
•Refine the operational semantics of CHR(FD) such that an homomorphism may be established with the GOS
81
Pierre Deransart Rewerse-WP I3 81
TITRE
Mon texte
•Jkjl
•hjk
82
Pierre Deransart Rewerse-WP I3 82
TITRE
Mon texte
•Jkjl
•hjk
83
Pierre Deransart Rewerse-WP I3 83
TITRE
Mon texte
•Jkjl
•hjk
84
Pierre Deransart Rewerse-WP I3 84
TITRE
Mon texte
•Jkjl
•hjk
85
Pierre Deransart Rewerse-WP I3 85
TITRE
Mon texte
•Jkjl
•hjk
86
Pierre Deransart Rewerse-WP I3 86
TITRE
Mon texte
•Jkjl
•hjk
87
Pierre Deransart Rewerse-WP I3 87
TITRE
Mon texte
•Jkjl
•hjk
88
Pierre Deransart Rewerse-WP I3 88
TITRE
Mon texte
•Jkjl
•hjk
89
Pierre Deransart Rewerse-WP I3 89
TITRE
Mon texte
•Jkjl
•hjk
90
Pierre Deransart Rewerse-WP I3 90
CONCLUSION and GENERAL PERSPECTIVES
•Traces• The concept of Virtual Full Trace makes traces as first class objects which can be
studied independently from the processes. It allows to deal with generic trace model.
•Interactions and Tracer Driver• Possibility to implement very large virtual full trace without slowing down
excessively the observed process• It allows to implement tracers as a continuous work.
•Observational Semantics open studies• The concept of OS can be viewed as trace semantics, defined independently from
specific tracers.• What is the (generic) observational semantics when forgetting the trace?• What are the relationships between process operational semantics and the
observational semantics?
91
Pierre Deransart Rewerse-WP I3 91
References
Bruce Martin and Bashar Jano. Wap binary xml content format, w3c note 24 june1999. Technical report, W3 Consortium, 1999. http://www.w3.org/TR/wbxml.
M.J. Harrold, G. Rothermel, R. Wu and L. Yi, An Empirical Investigation of Program Spectra, Proc. Of teh 1998 ACM SIGPLAN-SIGSOFT workshop on Program Analysis for Software Tools and Engineering, ACM Press, 83-90, 1998
92
Pierre Deransart Rewerse-WP I3 92
Thank you!
Recommended