Real-time software developers are encouraged to focus on the safety notion and the relation of software with critical properties like; reliability and security. These critical system properties guarantee system behaviour that nothing will go wrong or the risk that something will happen is low. Such risks are based on known high and low risk computer failures. Reliability is defined as the ability to minimize undesired situations and their effects in a bid to keep the system running effectively. Real-time software safety and security means setting measures that prevent the environment and computer systems from undesired situations and their possible effects because of the high risks involved.
A car is a good example of a mission critical system that meets the required performance level in regards to fuel consumption, speed and acceleration. It features an embedded micro-processor real-time control software that meets different critical requirements such as; security, safety and reliability. It has stringent requirements on the reaction speed and time of anti-lock brakes, alarms and air bags that make security considerations a real-time software concern.
The basic principle that must be adhered to when building a real-time software for safety critical system is considering safety first. This is because, the actions of a safety related system have precedence over regular system control procedures. This is evident from practical yet common examples like the lawn mower. Though not directly related to software application, a lawn mower safety device stops operations immediately its operator releases the operation handle. This supports low level constructions that act as guards that detect danger first and immediately stop the system or pass the information to the relevant control layer. This is the role played by a lawn mower’s handle.
Note that, real-time software safety components are required to take care of all security and safety signals before the controller responds. These factors limit a guard’s functionality to interpreting signals and determining whether they meet the required specifications like; variable trends that must be within the prescribed limits, commands validity and not exceeding set value ranges. This means that, the guard is designed to filter information that it passes to the control system. Based on algorithms designs, the application knows what to do in case it detects unsafe operation states.
Since safety is a factors that affects the environment, daily business and personal operations, safety related real-time software architectures must be adopted to avoid violation of safety. This could be through using a guard that acts as the ideal controller that takes care of controller errors to ensure that the plant/ system is not affected.