csci1600: embedded and real time software lecture 31: verification iv steven reiss, fall 2015

29
CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Upload: tyler-bryant

Post on 21-Jan-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

CSCI1600: Embedded and Real Time SoftwareLecture 31: Verification IV

Steven Reiss, Fall 2015

Page 2: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Working with Formula Assume we have a LTL/CTL formula for property

Assume we have a finite state program

Objective: Map the program to a Boolean formula

Create a combined formula for property + program

Prove the combined formula

Last time we showed how to create this formula

Ff(s’) is true if f holds in state s with bit repr s’

Page 3: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Making This Practical

The formulas can be generated but They are going to be very large

Need to both generate and use them efficiently

We need an efficient representation of a formula Easy to operate on (AND/OR/NOT/IMPLIES)

Space efficient

Easy to manipulate by computer

Page 4: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Decision Trees A formula can be written as a decision

tree Each node is labeled with a Boolean

variable

Each node has a true and a false branch out

Leaves are labeled either TRUE or FALSE

Example: A and (B or C) Try d AND (c OR (b XOR a))

What is the size of the tree? Does it have to be this size?

A

B F

CT

T

T

F

F

T

FT

F

Page 5: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Simplifying Decision Trees Most of the decision trees look the same

Extra variables just yield identical subtrees

Trees can be simplified

Simplify the tree into a DAG

There are only two real leaves (merge these)

If two nodes have the same children and the same labels, they can be merged

If both branches of a node go to the same node, the original node can be eliminated

This can be iterated

Worst case size is still exponential, actual size is generally much smaller

The results is a BDD (Binary Decision Diagram)

Page 6: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Ordered BDDs Place an a priori order on the variables as labels

Note that order affects the size

Optimum ordering is NP complete

Logical operations are easy to do on ordered BDDs Complement: flip TRUE and FALSE leaves

AND, OR: Merge the two trees level by level

Ordering makes this easy

Setting result to be AND/OR or merged result

EG and EU

Defined as iterative procedures on BDDs

Stopping at appropriate fixed points (no changes to BDD on next pass)

Page 7: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Model Checking BDDs

Compute the BDD for R(s,t) for the program

Inductively compute F(s) for the formula f

F(S) is true iff f is true in the program F(S) is true iff it is the singleton node True

Otherwise there is a path that shows false

Can use the BDD path to FALSE to find counterexample

BDDs have been used to verify programs with 2^80 states

Page 8: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Handling Real Time

The checking so far used relative time Sometime in the future, eventually

We can’t say after k ms or before k ms

Real time checking We’ve already seen some of this in terms of scheduling

Scheduling theory tells us when we can validly schedule periodic tasks

Provides necessary and sufficient conditions

Can accommodate non-periodic an sporadic tasks as well

How do we merge the two

Page 9: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Real-Time Model Checking

Augment Temporal Logic with real time operators

Discrete case: Count the number of steps

Do assertions in terms of number of steps

This assumes step size (time increment) is constant Hardware has real clocks

Each instruction takes a fixed number of cycles

If we can specify the number of cycles per instruction …

Alternatively, start with timed FSAs to deal with continuous real time

Page 10: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

RTCTL: Real-time CTL

Add a new operator f U[a,b] g Called “bounded Until”

f and g are arbitrary formula

[a,b] is a time interval (expressed in steps)

f U[a,b] g is true on a path P = s0 s1 … IFF g holds at some future state s on the path

f is true in all states between s0 and s

The distance form s0 to s is within the interval [a,b]

Page 11: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

RTCTL Add a new operator G[a,b] f

Bounded Globally

G[a,b] f is true on a path P = s0 s1 … IFF

f holds for state si where a <= i <= b

Label arcs with a time distance (default 1) This represents the number of cycles consumed here

Add self arcs where appropriate

Assume transition at each time

Note that this is not any more powerful than CTL Can use the X operator accordingly

Page 12: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Using BDDs for Timing Use BDDs to compute timing properties

Minimum and maximum delay

Compute the shortest (longest) path from a starting point to an ending point

Start when condition X holds

End when condition Y holds

Define a function to represent the set of states at distance k

Start with all states satisfying X

Compute from nodes at distance k-1 using R

Then check all these to see if Y holds

Page 13: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Continuous Real Time This is a more difficult problem

But is still approachable

Recall Timed Automata

Finite automata with a finite set of real world clocks

Notion of time

Transitions are instantaneous

Time elapses while automata is in a state

A transition may reset some of the clocks to zero

A clock has a value that is the time elapsed since last reset

Time passes at the same rate for all clocks

Only a finite number of transitions can occur in a finite amount of time

Page 14: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Timed Automata

Clock constraints Associate a guard with each transitioon

Associate an invariant with each state

Time can elapse at state only while invariant is true

Y <= 5Y <= 10X <= 8

Y >= 3, Y := 0

Y >= 4 && X >= 6; X := 0

Page 15: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Proving Properties

Map Timed Automata into infinite state transition graph State in the graph is a state in the TA + clock assignment

Transitions

Delay transition: just increment the clocks

Action: correspond to actual transitions

Problem: Clocks are real time, not discrete

Page 16: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Clock Regions Make all clock-related values integer

Assume all are rational to start with

Multiply by LCM

Identify clock regions representing sets of assignments

If two states corresponding to the same state of the timed automata agree on the integral parts of all clock values and also on the ordering of the fractional parts of all clocks, then the states will behave the same

This lets you create a finite representation

Can also be defined in terms of inequalities

This lets you solve reachability (defining valid transitions)

And you can do model checking on the finite representation

Page 17: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault Tolerance We’ve talked about proving properties of systems

This can’t always be done

And even so, it is an approximation

Assumes program is correct

Assumes real world model is correct

Assumes computer and other hardware work correctly

And you can’t prove everything

Embedded systems need to be fault tolerant No other recourse after failure

Page 18: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault Modeling

What can fail

How things can fail (failure modes)

Why things might fail (random or combined)

Faults might be permanent, intermittent, or transient

Faults might show up in different ways

Page 19: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Responding to Faults Fault confinement

Limit the effect of a fault to a local subsystem

Defensive programming

Fault detection and location Self tests

If transient, get enough information for later analysis

Fault masking Hide the effect of faults

Retry Transient faults might go away

Disk and memory problems may be transient

Page 20: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault Avoidance

Don’t write buggy code Serious testing, defensive programming

Verification

Avoid running devices at their limits

Page 21: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault Detection and Recovery

Extreme defensive programming Error checking codes (checksums) for messages

Self-checking and fail-safe logic

Watchdog timers and time-outs

Consistency and capability checks

Duplication (redundancy) This is important in critical, unsupervised systems

Page 22: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Redundancy Triple modular redundancy

Hardware is replicated three times

Outcome of each module (high-level routine) is a vote

If 2 agree on the answer, it is chosen

This fails when All 3 disagree (fail-stop)

Two modules fail together (byzantine)

The voting mechanism fails

Can handle k failures by having higher number of modules

Page 23: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Space Shuttle Redundancy Five computer implement the system

Four make up the primary system

Normally in command; Simultaneously execute identical code

Synchronize on I/O; Actuation is a physical vote

Priority-based OS

The fifth system is the backup

Completely independent implementation

Normally operates in listen-mode; Requires a manual switch-over

OS is time-sliced, not priority scheduled

Still have problems

Same language, same compiler

Page 24: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault Recovery What to do if something goes wrong

Keep the system running

Put the system into a stable state

Watchdog timer Monitor routine of sorts

Task code periodically sets a flag

Watchdog (high priority) checks and resets the falg

If flag is unset, restart the system

Care needed to not make things worse

Page 25: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault Recovery

Self-checking software With checkpoint and rollback

Correct data defects in memory and continue

Adaptive software

Safe backup state Failure isn’t just CPU failure

Might not want to reboot from stored state

Reset-reboot switches

Page 26: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Fault-Based Disk Partitioning SightPath CDN nodes (cache for media files)

Four disk partitions Boot partition that is never touched

Two OS partitions

Usually mounted read-only

Upgrades are written to the spare partition

Upgrade partition is then remounted read-only and marked clean

Boot partition will not boot from unclean partition

One data partition

All data is soft-state

Similar scheme used in flash-based devices

Page 27: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Next Time

Project status presentations Voluntary

If you aren’t going to be here or aren’t going to give one, provide a project status handin.

Following Wednesday: Guest Speaker

Page 28: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Understanding Faults

Page 29: CSCI1600: Embedded and Real Time Software Lecture 31: Verification IV Steven Reiss, Fall 2015

Next Time

Voluntary Project Status Updates

and Thanksgiving

Following Wednesday: GUEST LECTURE on SECURITY