• No results found

HIGHLY COMPETITIVE COMPETITION

N/A
N/A
Protected

Academic year: 2022

Share "HIGHLY COMPETITIVE COMPETITION"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Brandenburg University of Technology at Cottbus, Dep. of Computer Science

I NCREASED S AFETY BY

F AULT T OLERANT S OFTWARE -

J UST ANOTHER W AY

TO W ASTE M ONEY ?

M

ONIKA

H

EINER

[email protected] http://www.informatik.tu-cottbus.de

H IGHLY C OMPETITIVE C OMPETITION

❑ my new car !

❑ my new software toolkit ?

ABS

ESP USC

ASR

MSR

EBV

FTA SA

CTL/LTL

NVP RBS

RBD

MTBF MTTF MTTR

SADT

MASCOTJSD

DFD

CCS CSP

HOL

OBJ

LOTOS

VDM

Z

CORETLADTOOPVDM++

BOOP ASPECT

(2)

I NTERNATIONAL S TANDARD

❑ IEC 61508

Functional safety of

electrical/electronic/programmable electronic safety-related systems

❑ part 7

Overview of techniques and measures, first edition August 2002

❑ Annex C

Overview of techniques and measures for achieving software safety integrity

❑ C.2 Requirements and detailed design -> C.2.5 Defensive programming

❑ C.3 Architecture design

-> C.3.1 Fault detection and diagnosis -> C.3.2 Error detecting and correcting codes -> C.3.3 Failure assertion programming -> C.3.4 Safety bag

-> C.3.5 Software diversity -> C.3.6 Recovery block -> C.3.7 Backward recovery -> C.3.8 Forward recovery

-> C.3.9 Re-try fault recovery mechanisms -> C.3.10 Memorising executed cases -> C.3.11 Graceful degradation

-> C.3.12 Artificial intelligence fault correction -> C.3.13 Dynamic reconfiguration

M ETHODS T AXONOMY

MANUAL

COMPUTER-AIDED

F

AULT AVOIDANCE

FAULT REMOVAL

F

AULT TOLERANCE FAULT MASKING

FAULT RECOVERY

FAULT PREVENTION

development

operation

DEFENSIVE DIVERSITY

S

OFTWARE DEPENDABILITY

phase

phase animation / simulation / testing context checking (static analysis) consistency checking (verification)

(3)

S YSTEM F AILURE / R ELIABILITY - B ASICS

V1 V2

V1

V2

&

SF

f(v1) f(v2)

>=1 SF

f(v1) f(v2)

p(SF) = p(SF) =

SF = f(v1) and f(v2) SF = f(v1) or f(v2)

CAUTION: vi must be statistically independent

1-[(1-p(v1)) * (1-p(v2))] p(v1) * p(v2)

p(SF) = 0.19 p(SF) = 0.01

e.g. p(v1) = p(v2) = 0.1 RELIABILITY BLOCK DIAGRAM

FAULT TREE

LOGICAL FUNCTION

PROBABILITY FUNCTION

D EFENSIVE P ROGRAMMING

ERROR DETECTING/CORRECTING CODES

-> sensitive information

parity bits, Hamming codes, . . .

TRISTATE BRANCHING

-> integrity check on (finite discrete) data types

SIGNATURES

-> sequence errors in data/instruction streams -> compile time:

compute signature Sc for each instruction block, insert signature Sc at reference point

-> run time:

re-compute signature Sr,

at each reference point: Sc = Sr ?

TIMING CHECKS

-> time outs, watchdog timers if b

then thenAction else elseAction endif

if b = true

then thenAction else if b = false then elseAction endif

(4)

F AILURE A SSERTION P ROGRAMMING

❑ plausibility checks on (input/internal/output) variables -> robust programming

❑ logical checks on system states -> detection of design faults

. . .

assert x > 0; // pre-condition y := my_sqrt(x);

assert y*y = x; // post-condition . . .

-> run-time evaluation of assertions

from thorough program verification approaches if x >= 0

then y := my_sqrt(x) else exceptionHandling endif

assert x >= 0;

y := my_sqrt(x);

. . . . exception

when assertFail => exceptionHandling end exception

M EMORISING E XECUTED C ASES

-> to prevent the execution of un-known paths

ko ok

comparison operation

testing

fail result current data current path

tested paths tested executable

test data

executable program source

development

operation phase

phase

compilation instrumentation

(5)

N V ERSION P ROGRAMMING

-> parallel execution of n program versions, followed by majority test

two equal all unequal all equal

warning v2 v3

ko ok

voting v1

fork

success

v3_end v3_start v2_start

fail voting result v2_end v1_end

v1_start

start

voter

R ECOVERY B LOCK S CHEME

-> alternative execution of n program versions, each followed by acceptance test

i > 3 last i = 2 i= 3

success v3 v2

i = 1

ko ok

reset to checkpoint;

acceptance test v1

set checkpoint i := 1

fail test result

vi_end checkpoint start

will

i++

(6)

S UMMARY S OFTWARE D IVERSITY

❑ comparison

❑ versions are embedded in program frame -> flow control between versions and tester -> reliability bottle-neck

❑ key assumptions

-> error-free program frame

-> comparable results by identical interpretation of (semi-formal) requirement specification -> independent faults in all versions / testers

n version programs recovery block scheme

parallel versions alternative versions

equal functionality necessary

gracefully degraded functionality possible

relative result test (voter)

absolute result test (acceptance test)

hardware cheaper than run time

run time cheaper than hardware

hot redundancy cold redundancy

D IVERSITY A SPECTS

❑ versions are developed by different persons/teams of -> different education / universities

-> different professional background -> different cultural circles

❑ versions are developed using

-> different software process models -> different designs

-> different specification/programming languages -> different programming styles

-> different tools

(compiler, translator, debugger, ...)

versions are produced for different environments -> different hardware

-> different operating systems -> different libraries

versions are based on -> different algorithms -> different data structures

-> different (graceful degraded) functionality

(7)

F AULT RECOVERY

BACKWARD RECOVERY

reset to an earlier consistent internal state -> regular checkpointing necessary

-> danger: domino effect !

FORWARD RECOVERY

obtain a state, which will be consistent some time later -> real-time systems

with fast rate of internal state changes

RE-TRY FAULT RECOVERY MECHANISMS

re-executing the same code

(re-boot the whole system ... re-start a procedure) -> exploiting non-reproducability

GRACEFUL DEGRADATION

maintaining the more critical system functions by dropping the less critical functions

DYNAMIC CONFIGURATION

remapping the logical architecture

onto the currently available (restricted) resources

S UMMARY

fault tolerance allows basically

higher system reliability than components’ reliability

❑ software fault tolerance = redundancy + DIVERSITY

❑ (diverse) fault tolerance is extremely expensive -> development & operation phase

-> time & human/hardware resources -> what is more expensive:

thorough validation or fault tolerance ?

❑ fault tolerance involves increased complexity -> complexity <-> fault avoidance

-> fault tolerance <-> reuse of trustworthy components -> advanced software engineering skills

❑ fault tolerance is no substitute for fault avoidance

❑ tailored amount of fault tolerance requires sound software reliability measures fault tolerance is no substitute for thinking

-> THINK TWICE BEFORE USING FAULT TOLERANCE! LOOK TWICE FOR SUITABLE MODULE SIZES!

(8)

D ISCLAIMER S

❑ “The references should be considered as

basic references to methods and tools or as examples, and may not represent the state of the art.” p. 23

❑ “The overview of techniques contained in this annex [C] should not be regarded as either complete or exhaustive.” p. 115

❑ “Currently, at the time of developing this standard, it is not clear whether object-oriented languages are to be preferred to other conventional ones.” p. 169

❑ “If a specific language is not listed in the table, it must not be assumed that it is excluded.” p. 173

F URTHER R EADING

❑ Ehrenberger, W.:

Softwareverifikation, Verfahren für den Zuverlässigkeitsnach- weis von Software; Hanser 2002.

Wenn es auch der Titel nicht vermuten läßt, es werden sowohl fehlervermeidende als auch fehlertolerierende Verfahren für zuverlässige Software diskutiert.

❑ Herrmann, D. S.:

Software Safety and Reliability; IEEE Computer Society 1999.

Guter Überblick über einschlägige (teilweise v. a. in den USA) übliche Standards, sowohl Spezifische für bestimmte Industriezweige als auch solche mit einer breiteren Allgemeingültigkeit.

❑ Leveson, N. G.:

Safeware; Addison-Wesley 1995.

Konzentriert sich auf sicherheitsorientierte Systeme.

❑ Lyu, M. R. (ed.):

Software Fault Tolerance; Wiley 1995.

Leider keine Monographie, sondern eine eher lose Sammlung von Themen-Blöcken, die irgendwie zur Software-Fehlertoleranz gehören.

❑ Schneeweiss, W.:

Die Fehlerbaum-Methode; LiLoLe-Verlag 1999.

"Das zentrale Problem dieses ganzen Bandes ist die Umwandlung der Booleschen Funktion phi des Fehlerbaumes in irgendeine Form, aus der man einigermassen leicht die Wahrscheinlichkeit des Wertes phi=1, der dem Systemausfall entspricht, bestimmen kann." - der Autor. Eine eindrucksvolle, aber optimistische Falldarstellung zahlre- icher Fußangeln der Wahrscheinlichkeitsrechnung. Nebenwirkung:

glaube (fast) keinem Tool zur automatischen Fehlerbaum-Analyse.

References

Related documents

هب هولاع تشذگ زا دعب ، ی ک ارجا زا هام ی ا شهاک هک دش صخشم ،هلخادم ی ن غتم ی ر اضعا رد ی گ هور امزآ ی ،ش پ هلحرم رد ی گ ی ر ی ن ی ز هب تروص اد ینعم ر ی هتشاد

This diagnostic task can pose challenges due to low contrast of the lesions.[2] Another feature of the iPatient approach to help optimize image quality and manage radiation exposure

• WSCH based FTES calculation for lab hours • Online labs. •

Retail Insurance Market 4 Life Insurers Total Retail 1 : 18 Players $8.4b IFAP $1.1b ANP Advice: 12 Players Life Reinsurers 6 Players Institutional AFSLs Advice

• Moving data to the destination • Reliability and fault tolerance • Resource allocation. (Lots of

The transmission of the Lehman Brothers shock has deepened the financial crisis already started in 2007 and in response to this shock, the ECB has intervened

Project Based Learning in Teaching Communication Skills in English as a Foreign Language to Engineering Students.. Innovation in the Classroom: Design Thinking for 21 st

This white paper describes an example of the configuration of a client, a proxy service, and a business service communicating over firewalls and a DMZ, using inbound and