Difference between revisions of "RunMode"

From BP Wiki
Jump to: navigation, search
Line 8: Line 8:
 
* Nondeterminism specification: Ignored. All priorities are considered distinct.
 
* Nondeterminism specification: Ignored. All priorities are considered distinct.
 
* Event Selection: Always the first requested event that is not blocked.
 
* Event Selection: Always the first requested event that is not blocked.
* Backtracking: none.  
+
* Backtracking: none.
* Stops: When all b-threads end, or when there are no enabled events.  
+
* Stops: When all b-threads end, or when there are no enabled events.
  
== -DrunMode=Random ==  
+
== -DrunMode=Random ==
 
* Description: One possible run out of many.
 
* Description: One possible run out of many.
* Use: Demonstration or manual exploration of different possible runs.  
+
* Use: Demonstration or manual exploration of different possible runs.
 
* Non-determinism specification: Allowed.
 
* Non-determinism specification: Allowed.
* Event selection: Random among all non-deterministic choices.  
+
* Event selection: Random among all non-deterministic choices.
* Backtracking: none.  
+
* Backtracking: none.
* Stops: When all b-threads end, or when there are no enabled events.  
+
* Stops: When all b-threads end, or when there are no enabled events.
* Additional related parameters: -DrandomSeed= nnnn.  
+
* Additional related parameters: -DrandomSeed= nnnn.
  
== -DrunMode=Iter ==  
+
== -DrunMode=Iter ==
 
* Description: An iterative run – explore all possible executions.
 
* Description: An iterative run – explore all possible executions.
* Use: to assess traces and results of all possible runs resulting from non-deterministic choices.  
+
* Use: to assess traces and results of all possible runs resulting from non-deterministic choices.
 
* Non-determinism specification: Allowed.
 
* Non-determinism specification: Allowed.
* Event selection: Systematically makes all possible combinations of event selections  - in different runs.  
+
* Event selection: Systematically makes all possible combinations of event selections  - in different runs.
 
* Backtracking:  When a run ends , it is restarted , and a new combination of event selections is used - from the beginning - not at the next higher nondeterminstic choice.
 
* Backtracking:  When a run ends , it is restarted , and a new combination of event selections is used - from the beginning - not at the next higher nondeterminstic choice.
 
* Stops: When the last run of all possible runs  ends (all possible combinations of event selections exhausted).
 
* Stops: When the last run of all possible runs  ends (all possible combinations of event selections exhausted).
  
== -DrunMode=MCSafety ==  
+
== -DrunMode=MCSafety ==
* Description: A model-checking run. Explore all possible executions paths – looking to validate safety properties.  
+
* Description: A model-checking run. Explore all possible executions paths – looking to validate safety properties.
* Use: Model checking: explore safety properties (including deadlocks), liveness properties (with fairness assumptions), discover desired paths, etc.
+
* Use: Model checking: explore safety properties (including deadlocks), discover desired paths, etc.
 
* Nondeterminism specification: Allowed (actually required by definition).
 
* Nondeterminism specification: Allowed (actually required by definition).
 
* Event selection: Systematically makes all possible combinations of event selections
 
* Event selection: Systematically makes all possible combinations of event selections
Backtracking: systematic as part of exploring the state-graph - as described in [[Nondeterminism | section on nondetermism]]
+
* Backtracking: systematic as part of exploring the state-graph - as described in [[Nondeterminism | section on nondetermism]].
Stops:  When counterexample is found, or when verification of all transitions / states is complete.
+
* Stops:  When counterexample is found, or when verification of all transitions / states is complete.
Additional related parameters: -Dsearch=BFS/DFS,  -Drecursive=true/false
+
* Additional related parameters: -Dsearch=BFS/DFS,  -Drecursive=true/false
  
-DrunMode=MCLiveness
+
 
Description: A model-checking run– explore all execution paths looking to validate liveness properties subject to fairness assumptions.
+
== -DrunMode=MCLiveness ==
Use: Model checking: explore safety properties (including deadlocks), liveness properties (with fairness assumptions), discover desired paths, etc.
+
* Description: A model-checking run– explore all execution paths looking to validate liveness properties subject to fairness assumptions.
Non-determinism specification: Allowed (actually required by definition) of MC.
+
* Use: Model checking for liveness properties - (with fairness assumptions),.
Event selection: Systematically makes all possible combinations of event selections
+
* Non-determinism specification: Allowed (actually required by definition).
Backtracking/rerun: extensive backtracking as part of exploring the state-graph
+
* Event selection: Systematically makes all possible combinations of event selections.
 +
* Backtracking: systematic as part of exploring the state-graph - as described in [[Nondeterminism | section on nondetermism]].
 
Stops:  When counterexample is found, or when verification of all transitions / states is complete.
 
Stops:  When counterexample is found, or when verification of all transitions / states is complete.
Additional related parameters:  Conditional, strong and weak fairness assumptions provided as sets of events�
+
* Additional related parameters:  Conditional, strong and weak fairness assumptions provided as sets of events
-DrunMode=MCDet
+
 
Description: A deterministic run, with model-checking instrumentation. No non-determinism. Always pick 1st event
+
== -DrunMode=MCDet ==
-DrunMode=Learning/Training (In development)
+
Description: A deterministic run, with model-checking instrumentation. No non-determinism. Always pick 1st event that is requested and not blocked. See [[MCInstrumentation | Application Assistance and Instrumentation for BPmc]]
 +
 
 +
== -DrunMode=Learning/Training ==
 +
(In development)

Revision as of 14:19, 4 August 2013

Specifying Run Modes

BPmc is activated by specifying the runmode paramater in the run configuration, under VM parameters, as follows:

-DrunMode=Det

  • Description: “Normal” / standard / deterministic run.
  • Use: when you want the program to “do something”.
  • Nondeterminism specification: Ignored. All priorities are considered distinct.
  • Event Selection: Always the first requested event that is not blocked.
  • Backtracking: none.
  • Stops: When all b-threads end, or when there are no enabled events.

-DrunMode=Random

  • Description: One possible run out of many.
  • Use: Demonstration or manual exploration of different possible runs.
  • Non-determinism specification: Allowed.
  • Event selection: Random among all non-deterministic choices.
  • Backtracking: none.
  • Stops: When all b-threads end, or when there are no enabled events.
  • Additional related parameters: -DrandomSeed= nnnn.

-DrunMode=Iter

  • Description: An iterative run – explore all possible executions.
  • Use: to assess traces and results of all possible runs resulting from non-deterministic choices.
  • Non-determinism specification: Allowed.
  • Event selection: Systematically makes all possible combinations of event selections - in different runs.
  • Backtracking: When a run ends , it is restarted , and a new combination of event selections is used - from the beginning - not at the next higher nondeterminstic choice.
  • Stops: When the last run of all possible runs ends (all possible combinations of event selections exhausted).

-DrunMode=MCSafety

  • Description: A model-checking run. Explore all possible executions paths – looking to validate safety properties.
  • Use: Model checking: explore safety properties (including deadlocks), discover desired paths, etc.
  • Nondeterminism specification: Allowed (actually required by definition).
  • Event selection: Systematically makes all possible combinations of event selections
  • Backtracking: systematic as part of exploring the state-graph - as described in section on nondetermism.
  • Stops: When counterexample is found, or when verification of all transitions / states is complete.
  • Additional related parameters: -Dsearch=BFS/DFS, -Drecursive=true/false


-DrunMode=MCLiveness

  • Description: A model-checking run– explore all execution paths looking to validate liveness properties subject to fairness assumptions.
  • Use: Model checking for liveness properties - (with fairness assumptions),.
  • Non-determinism specification: Allowed (actually required by definition).
  • Event selection: Systematically makes all possible combinations of event selections.
  • Backtracking: systematic as part of exploring the state-graph - as described in section on nondetermism.

Stops: When counterexample is found, or when verification of all transitions / states is complete.

  • Additional related parameters: Conditional, strong and weak fairness assumptions provided as sets of events

-DrunMode=MCDet

Description: A deterministic run, with model-checking instrumentation. No non-determinism. Always pick 1st event that is requested and not blocked. See Application Assistance and Instrumentation for BPmc

-DrunMode=Learning/Training

(In development)