Следующий до предыдущая
Next: Design diversity Up: No Title Previous: Classification of software faults Далее в программе: Дизайн разнообразия Up: No Title Previous: Классификация сбоев программного обеспечения

  
Techniques for Fault Tolerance in Software Методы для обеспечения отказоустойчивости в программное обеспечение

Means to cope with the existence and manifestation of faults in software are divided into three main categories: Средства, чтобы справиться с существованием и проявление неисправности в программном обеспечении можно разделить на три основные категории:

Most Bohrbugs, which are deterministic and repeatable, can be removed through rigorous and extensive testing and debugging. Большинство Bohrbugs, которые являются детерминированными и повторяемые, могут быть удалены путем строгого и тщательного тестирования и отладки. But, as argued in the previous sections, no amount of testing can certify software as fault-free, ie fault avoidance and fault removal cannot ensure the absence of faults. Но, как утверждают в предыдущих разделах, не объем тестирования может подтвердить программного обеспечения безотказной, т.е. избежание неисправностей и устранения неисправностей не может гарантировать отсутствие ошибок. Therefore, any practical piece of software can be presumed to contain faults in the operational phase and designers must deal with these faults if the software failure has serious consequences. Таким образом, любая практическая часть программного обеспечения, можно предположить, содержать ошибки в оперативную фазу и дизайнерам приходится иметь дело с этих недостатков, если сбоя в программном обеспечении имеет серьезные последствия. The remaining faults in software after testing and debugging are usually Heisenbugs which eluded detection during the testing. Остальные недостатки программного после тестирования и отладки, как правило, Heisenbugs которая ускользает от обнаружения во время тестирования. Hence, fault tolerance , is the only remaining hope to achieve dependable software. Таким образом, отказоустойчивость, является единственным оставшимся надеяться на достижение надежного программного обеспечения. Fault tolerance makes is possible for the software system to provide service even in the presence of faults. Отказоустойчивость делает это возможным для программного комплекса для предоставления услуг даже в присутствии неисправности. This means that an imminent failure needs to be prevented or recovered from. Это означает, что неизбежный провал должно быть предотвращено или оправился от. In this paper, we will only discuss methods to deal with software in the operational phase, ie, methods to provide fault tolerance. В данной работе мы будем обсуждать только методы, чтобы иметь дело с программным обеспечением в оперативную фазу, т. е. методы для обеспечения отказоустойчивости.

There are two strategies for software fault tolerance - error processing and fault treatment . Есть две стратегии для программного обеспечения отказоустойчивости - обработка ошибок и вины лечения. Error processing aims to remove errors from the software state and can be implemented by substituting an error-free state in place of the erroneous state, called error recovery , or by compensating for the error by providing redundancy, called error compensation . Ошибка обработки призван устранить ошибки программного обеспечения государством и может быть реализован подставляя ошибок свободном состоянии в место ошибочное состояние, называемое исправление ошибок, или компенсировать ошибки, обеспечивая резервирование, называется компенсации ошибки. Error recovery can be achieved by either forward or backward error recovery. Ошибка восстановления может быть достигнуто путем вперед или назад ошибок. The second strategy, fault treatment, aims to prevent activation of faults and so action is taken before the error creeps in. The two steps in this strategy are fault diagnosis and fault passivation. Вторая стратегия, вина лечения, направленный на предотвращение активации неисправностей и так приняты меры, прежде чем ошибка ползет дюйма двух шагов в этой стратегии диагностики отказов и неисправностей пассивации. Figure 2 shows this classification. Рис 2 показывает эту классификацию. The nature of faults which typically occur in software has to be thoroughly understood in order to apply these strategies effectively. Характер неисправностей, которые обычно происходят в программное обеспечение должно быть тщательно понимать для того, чтобы применять эти стратегии эффективно. Techniques for tolerating faults in software have been divided into three classes - design diversity, data diversity and environment diversity. Методы терпимо недостатки программного были разделены на три класса - разнообразием дизайна, данных разнообразия и окружающей среды разнообразия. Table 1 shows the fault tolerance strategies used by these classes. Таблица 1 показывает, отказоустойчивость стратегий, используемых этими классами. All these classes are discussed briefly in the following sections. Все эти классы кратко рассматриваются в следующих разделах.


  
Figure 2: Means of software fault tolerance Рисунок 2: Средства программного обеспечения отказоустойчивости
\ Начать {цифра} \ центральной {\ {psfig Файл = means.eps, ширина = 2.5in}} \ {конце фигуры}


 
 
Table 1: Strategies used by different fault tolerance methods Таблица 1: Стратегии, используемые различными методами отказоустойчивость
Design Дизайн Data Данные Environment Окружающая среда Checkpointing Контрольных точек
diversity разнообразия diversity разнообразия diversity разнообразия & recovery И восстановления
Error compensation Ошибка компенсации X X X X
Error recovery Исправление ошибок X X
Fault treatment Неисправность лечения X X



 
Следующий до предыдущая
Next: Design diversity Up: No Title Previous: Classification of software faults Далее в программе: Дизайн разнообразия Up: No Title Previous: Классификация сбоев программного обеспечения