Chapter 1 -- Introduction
Download
Report
Transcript Chapter 1 -- Introduction
CSE 522
UPPAAL – A Model Checking Tool
Computer Science & Engineering Department
Arizona State University
Tempe, AZ 85287
Dr. Yann-Hang Lee
[email protected]
(480) 727-7507
UPPAAL -- Introduction
A tool for modeling, simulation and verification of real-
time systems.
Appropriate for systems that can be modeled as
a collection of non-deterministic processes with finite control
structure and real-valued clocks (i.e. timed automata)
Networks of timed automata
communicate through channels and shared data structures.
Modeling language
channels, and locations
constants, data-variables (with bounded domains) and arrays
guards and assignments
templates with local clocks, data-variables, and constants
C subset
2
Tool Overview
System Editor
Draw Automata: locations, edges, etc.
Declare global and local constant, variables, and functions
Create instances of system and processes
Simulator
Traces (state transitions): next, prev, replay, open, save,
random
Message sequences
Verifier
A<> p : p will inevitable become true, the automaton is
guaranteed to eventually reach a state in which p is true.
3
Example: Fischer’s Protocol (1)
A well-known mutual exclusion protocol
a timed protocol where the concurrent processes check for both
a delay and their turn to enter the critical section using a shared
variable id.
Protocol
Starting from the initial location
processes go to a request location, req, if id==0, which checks
that it is the turn for no process to enter the critical section.
stay non-deterministically between 0 and k time units in req,
go to the wait location and set id to their pid
wait at least k time units, before entering the critical section CS if
it is its turn, i.e. id==pid.
4
Example: Fischer’s Protocol (2)
id – shared variable, initialized 0
each process has it’s own timer (for delaying)
Process i:
while (true) {
<noncritical section>;
while id != -1 do {}
id := i;
delay K;
if (id = i) {
<critical section>;
id := -1;
}
}
5
Example: Fischer’s Protocol
6
Locations
Locations: to define the state of automaton.
System state is defined by the locations of all automata, the clock
values, and the values of the discrete variables.
Initial Locations
The beginning of the process. Each template must have exactly
one initial location.
Urgent Locations
Urgent locations freeze time. This forces the actual process to
always make a transition without any delay.
Committed Locations
A committed state cannot delay and the next transition must
involve an outgoing edge of at least one of the committed
locations.
7
Locations and Edges
Invariant, selection, guard, update, synchronization
n: int[0,5]
a!
8
Channels in Uppaal
Used to synchronize two processes.
binary synchronization and blocking
an edge with synchronization label e! emits a signal on the
channel e and that the enabled edge with synchronization
label e? will synchronize with the emitting process.
Urgent Channels
synchronization via that channel has priority over normal
channels and the transition must be taken without delay.
No clock guard allowed on edges using urgent channels.
Broadcast channel
allows 1-to-many synchronization.
sender is not blocked if there is no receiver.
9
Declaration in Uppaal
Integer
int num1, num2;
// integer variables with default domain.
int a[2][3];
// a multidimensional integer array.
int[0,5] b=0;
// with the range 0 to 5 initialized to 0.
Boolean
bool yes = true;
//a boolean variable “yes initialize to true.
bool b[8], c[4];
// two boolean arrays b and c, with 8 and 4 elements
Const
const int a = 1;
// constant “a” with value 1 of type integer.
const bool No = false;
//constant “No” with value false
Clock
clock x, y; //two clocks x and y.
Channel
chan d;
// a channel.
urgent chan a, b ,c; //urgent channel.
10
Verifying Properties (1)
E<> p: there exists a path where p eventually holds.
A[] p: for all paths p always holds.
E[] p: there exists a path where p always holds.
A<> p: for all paths p will eventually hold.
p --> q: whenever p holds q will eventually hold.
Name
Possibly
Invariantly
Property
E<> p
A[] p
Equivalent to
Potentially always
E[] p
Eventually
A<> p
not E[] not p
Leads to
p --> q
A[] (p imply A<> q)
not E<> not p
p is reachable
p is always truth
p is inevitable
whenever p holds
eventually q will hold
11
Verifying Properties (2)
A[]
E<>
A<>
E[ ]
12
Verifying Properties (3)
Deadlock (state formula)
A state is a deadlock state if there are no outgoing action transitions
neither from the state itself or any of its delay successors.
Reachability
whether there exists a path starting at the initial state, such that a
state formula is eventually satisfied (e.g. is it possible for a sender to
send a message?)
Safety
Something bad will never happen! (e.g. the temperature of the
engine is always (invariantly) under a certain threshold)
(something good is invariantly true)
Liveness
Something good will eventually happen! (e.g. when pressing the on
button, then eventually the television should turn on)
13
System Model in Uppaal
System:
a list of processes to define a network of timed automata, i.e.
concurrent processes.
global declaration
Process:
instantiated from a parameterized template.
Template: definition of a timed automaton
can be parameterized, e.g., automata for 4 tasks
have local declarations of variables, channels, and constants
templates without parameters are instantiated into exactly one
process
At a given time-point, transitions are enabled in the order
of the process priorities.
14
Additional Features in Uppaal
Priority
chan priority a < b, c;
system P < Q, R;
At a given time-point, local and synchronization transitions are
enabled in the order of process and channel priorities.
User defined functions
C/C++/Java style
no recursive call, evaluated atomically and must be deterministic
compiled to byte-code, and executed at verification time on a
small embedded stack machine.
15
Example: Train Crossing (1)
Stopable
Area
[3,5]
[10,20]
Crossing
[7,15]
Queue
Gate
River
16
Example: Train Crossing (2)
A railway control system which controls access to a bridge for
several trains.
The bridge is a critical shared resource that may be accessed
only by one train at a time.
A train can not be stopped instantly and restarting also takes
time.
When approaching, a train sends an appr! signal. Thereafter, it has 10
time units to receive a stop signal. This allows it to stop safely before the
bridge.
After these 10 time units, it takes further 10 time units to reach the
bridge if the train is not stopped.
If a train is stopped, it resumes its course when the controller sends a
go! signal to it after a previous train has left the bridge and sent a leave!
signal.
17
Example: Train Crossing (3)
channels for “appr”, “stop”, “go”, and “leave”
Queries
A[] forall (i : id_t) forall (j : id_t) trains(i).Cross && trains(j).Cross imply i == j
trains(1).Appr --> trains(1).Cross
18
Example: Train Crossing (4)
Train automata
Gate automata
19
Labels in Edges (1)
Edges are annotated with guards, updates, synchronizations
and selections
A guard is an expression which uses the variables and clocks
of the model in order to indicate when the transition is enabled,
i.e. may be fired.
Note that several edges may be enabled at an specific time but
only one of them will be fired
An update is an expression that is evaluated as soon as the
corresponding edge is fired.
Selections non-deterministically bind a given identifier to a
value in a given range.
The other three labels of an edge are within the scope of this binding.
(http://dmi.uib.es/~jproenza/SistEncTR/TheUppaalModelCheckerNEW.pdf)
20
Labels in Edges (2)
Synchronization: the basic mechanism used to coordinate the
action of two or more processes.
models for instance the effect of messages causes two (or more)
processes to take a transition at the same time.
Regular channel
fired between the processes paired with c! and c? for a channel c
and when the guards of the edges are satisfied.
if there are several possible ways to have a pair c! and c?, one of
them is non-deterministically chosen.
The update expression on an edge synchronizing on c! is
executed first
21
Committed Locations
Committed locations
useful for creating atomic sequences
a committed state cannot delay and the next transition must
involve an outgoing edge of at least one of the committed
locations
if any process is in a committed location, the next transition must
involve an edge from one of the committed locations
if several processes are in a committed location at the same
time, then they will interleave.
a! and b! are atomic
22
Delay Transition and Invariants (1)
Delay transitions model the passing of time without changing
the current location.
a delay transition (L, v) --(d)--> (L, v'), where d is a non-negative
real, if and only if:
v' = v + d, where v+d is obtained by incrementing all clocks
with d.
for all 0 <= d' <= d: v + d' satisfies Inv(L)
L contains neither committed nor urgent locations
no enabled edge with urgent synchronization
When will the reset synchronization happen?
23
Delay Transition and Invariants (2)
24
Delay Transition and Invariants (3)
25