Abstract
System failures include hardware failures and software failures. However, most of them are software failures. A redundant system is usually used to improve the reliability of hardware, but even if the same redundant principle is applied to a software system, each module (program) is a copy of the original, resulting in errors occurring in the same location without improving the reliability. Additionally, although a hardware failure can be detected relatively easily by human five senses, a software failure is difficult to be detected except in extreme cases such as when the system is stopped or gets out of control. To address these issues, this paper proposed a system that enables a robust redundancy for software. The proposed system monitors the control flow of the software and when an irregular flow is detected, the control flow shifts to another module with same function but different coding. The proposed redundant system is superior to existing single module system or other redundant systems in detecting errors and improving software reliability.