The document discusses software fault tolerance techniques. It begins by explaining why fault tolerant software is needed, particularly for safety critical systems. It then covers single version techniques like checkpointing and process pairs. Next it discusses multi-version techniques using multiple variants of software. It also covers software fault injection testing. Finally it provides examples of fault tolerant systems used in aircraft like the Airbus and Boeing.
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Software Fault Tolerance
1. Software Fault Tolerance Presented By, Ankit Singh (asingh@stud.fh-frankfurt.de) M.Sc High Integrity System University of Applied Sciences, Frankfurt am Main
2. 1. Why we need Fault Tolerant Software? 2. Single Version Software Tolerance Techniques 3. Multi Version Software Tolerance Techniques 4 Software Fault Injection for Fault Tolerance Assessment! 5. Examples of Fault Tolerant Systems
7. Why we need Fault Tolerant Software? “ PROGRAMS are really not much more than the PROGRAMMER’S BEST GUESS about what a system should do”
8.
9.
10. Why we need Fault Tolerant Software? Quick look on software development process!!! This process model is appropriate for projects where the requirements are incompletely specified or when the developers are unsure whether a proposed design solution is adequate.
17. Checkpoint and Restart Single Version Software Tolerance Techniques There exist two kinds of restart recovery: Static : A static restart is based on returning the module to a predetermined state. Dynamic: Dynamic restart uses dynamically created checkpoints that are snapshots of the state at various points during the execution. Advantage: they are based on states created during operation, and can thus be used to allow forward progress of execution without having to discard all the work done up to the time of error detection.
24. Recovery Blocks Multi Version Software Tolerance Techniques Checkpoints are created before a version executes . Checkpoints are needed to recover the state after a version fails to provide a valid operational starting point for the next version if an error is detected.
26. N Self-Checking Programming Multi Version Software Tolerance Techniques This use of separate acceptance tests for each version is the main difference of this N Self-Checking model from the Recovery Blocks approach. Similar to Recovery Blocks, execution of the versions and their tests can be done sequentially or in parallel but the output is taken from the highest-ranking version that passes its acceptance test.
27. Multi Version Software Tolerance Techniques This model has the advantage of using an application independent decision algorithm to select a correct output. This variation of self-checking programming has the theoretical vulnerability of encountering situations where multiple pairs pass their comparisons each with different outputs.
28. Consensus Recovery Blocks Multi Version Software Tolerance Techniques The Consensus Recovery Blocks approach combines N-Version Programming and Recovery Blocks to improve the reliability over that achievable by using just one of the approaches. The acceptance tests in the Recovery Blocks suffer from lack of guidelines for their development and a general proneness to design faults due to the inherent difficulty in creating effective tests.
29.
30. Software Fault Injection for Fault Tolerance Assessment! Multi Version Software Tolerance Techniques
44. Examples of Fault Tolerant Systems AIRBUS A320/A330/A340 Flight Control Computer The primary module sends its commands to the actuators, with the secondary module remaining in standby. When the primary module fails , it is taken offline and the secondary module takes over the command function. In addition, a second pair of modules (Primary 2 and Secondary 2 in Figure 21) is also available and sending commands to redundant actuators.
45. Example of Fault Tolerant Systems , was the last thing I want to discuss with you! Happy Christmas & New Year In Advance !! Thank You! Examples of Fault Tolerant Systems