Software fault tolerance

Fault tolerance must be a key consideration in the early stage of software development.

There exist different mechanisms for software fault tolerance, among which: Computer applications make a call using the application programming interface (API) to access shared resources, like the keyboard, mouse, screen, disk drive, network, and printer.

A blocked call is a request for services from the operating system that halts the computer program until results are available.

Intensive calculations cause lengthy delays with the same effect as a blocked API call.

This has the benefit that none of the information about the state of the API call is lost while other activities take place.

Any signal that does not have handler code becomes a fault that causes premature application termination.

The handler is a function that is performed on-demand when the application receives a signal.

Initialized handler functions are paired with each signal when the software starts.

This can also be achieved by replicating information as it is created on multiple identical systems, which can eliminate recovery delay.