SFT Assignment 3
SFT Assignment 3
Obtained Marks:
Student Name:
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Reg Number:
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Report
Introduction:
A real-time system is one that must produce a correct result within a specific
time deadline. Failures in real time systems can arise from both functional-errors as well as
timing bugs. Hence, it is necessary to provide temporal correctness of programs used in real
time applications. Reliability has always been an important quality attribute of software
systems especially for mission and safety critical software systems because in such systems
severity of consequences resulting from failures is very high. In order to achieve failure free
operation of software, one develops some mechanism to handle those faults which remain
in the system even after its development. Software fault tolerance is such a mechanism
which can be used to deal with the remaining faults after development of system. Since real-
time systems need to be highly reliable and as it is not always possible to ensure the
development of highly reliable system therefore, they are prime candidates for the inclusion
of fault tolerance techniques.
Comparison:
Recovery Blocks Poor It may not be suitable for real time systems due to its
serial
nature of execution.
No mechanisms to handle timing bugs for providing
temporal
correctness.
Consensus Good, suitable for It is suitable for real-time systems because it works on
Recovery Block real systems both RcB and NVP. If DM fails then it will go for AT.
The CRB technique has been found to be surprisingly robust in the presence of high
introversion correlation. However, it is important to note that the models used did not
include correlation effects. Although these statements appear contradictory in nature, the
example results below should clarify the particular situations in which the CRB technique
performs well. In general, when the AT is not of very high quality, Consensus Recovery Blocks
tends to outperform N-Version Programming and to perform competitively with the
Recovery Block technique. The following results of CRB performance are from the
experiments and studies reported in, unless otherwise referenced.
• When there is failure independence between variants and a zero probability of identical
and wrong (IAW) answers, CRB is always superior to NVP (given the same variant reliability
and the same voting strategy) and to RCB (given the same variant and AT reliability).
• When there is a very high failure correlation between variants, CRB is expected to
outperform NVP (given the same voting strategy) only when the variants that do fail
coincidentally return different results. (The CRB-AT would then be invoked.)
• When the probability of IAW results is very high, CRB is not superior to NVP. (The CRB-AT
would be invoked infrequently because the majority voter would select one of the identically
incorrect results as the correct answer.) The NVP does not perform well either in this
situation.
• For n = 3, CRB with majority voting has reliability equal to or better than the reliability of
NVP with majority voting (using the same variants).
• For n = 5, with a lower n-tuple reliability, NVP with consensus voting performs almost as
well as CRB.
• Most of the time, CRB with consensus voting is more reliable than
NVP with consensus voting.
• NVP with consensus voting may be marginally more reliable than
CRB with consensus voting when the AT reliability is low, or when
AT and program failures produce IAW results. This situation was
observed with low frequency.
Conclusion:
Reference:
https://youtu.be/eti0A8cPTCs