|
||||||||||
|
M. V. Saramud, Engineer, e-mail: msaramud@gmail.com, I. V. Kovalev, Professor, e-mail: kovalev.fsu@mail.ru, In the article considered technique which makes it possible to compare the main methodologies for increasing fault tolerance with the introduction of software redundancy: N-version programming (with majority and fuzzy voting algorithms), N self-checking programming, recovery blocks, consensus recovery blocks, and t/(n — 1)-version programming. The software implementation of this technique allowed to compare them under the same conditions, with the specified system characteristics and the probabilities of correct operation of all components, to obtain system characteristics using these methodologies based on the simulation results. The results of modeling in the proposed environment are analyzed. A non-trivial methodology of t/(n — 1)-Variant Programming based on t/(n — 1)-diagnosability is considered in detail. The results of it's work are compared with classical methodologies. This simplifies the choice of methodology for implementing the software under development. A software implementation with real algorithms allows you to select the best optimization algorithm for a given set of functions and the amount of allowable deviation. Also it shows the working capacity of the proposed toolkit on a real applied task, where the system no longer knows the correct output, but works in real conditions, rather than with simulation versions. |