Повышение надежности функционирования программных средств за счет избыточности


В программных системах реального времени для обеспечения высокой надежности их функционирования необходимо максимально быстро обнаруживать искажения и восстанавливать нормальное функционирование. В сложных ПС ошибки неизбежны, поэтому необходима регулярная автоматическая проверка процесса исполнения программ и сохранности данных. От разработчиков требуется создание надежных программ, устойчивых к различным негативным возмущениям и способных сохранять достаточное качество результатов в реальных условиях функционирования. Причины искажений непредсказуемы и разнообразны, поэтому не обязательно сразу устанавливать эти причины, главная задача сводится к максимально быстрому восстановлению нормального функционирования и ограничению последствий проявления дефектов. Чтобы обеспечить высокую надежность функционирования ПС, необходимы вычислительные ресурсы для максимально быстрого обнаружения проявления дефектов и автоматизированных мероприятий, обеспечивающих быстрое восстановление нормального функционирования ПС.
Для этих целей используются следующие оперативные методы повышения надежности:
I. Временная избыточное;
2. Информационная избыточность;
3. Программная избыточность
Временная избыточность состоит в использовании некоторой части производительности компьютера для контроля исполнения программ и восстановления (рестарта) вычислительного процесса. Для этого при проектировании систем должен предусматриваться запас производительности, который будет использоваться на контроль и оперативное повышение надежности функционирования. Величина временной избыточности зависит от требований к надежности и находится в пределах от 5-10% производительности процессора до 3-4-кратного дублирования производительности отдельной машины в многопроцессорных вычислительных комплексах.
Информационная избыточность состоит в дублировании исходных и промежуточных данных обрабатываемых программами. Избыточность используется для сохранения достоверности данных, которые в наибольшей степени влияют на нормальное функционирование ПС и требуют значительного времени на восстановление. Их защищают 2-3 кратным дублированием с периодическим обновлением.
Программная избыточность используется для контроля и обеспечения достоверности наиболее важных решений ПО обработке информации. Она заключается в сопоставлении результатов обработки одинаковых исходных данных Программами, различающимися используемыми алгоритмами, и в исключении искажений при несовпадении результатов. Программная избыточность необходима также для реализации программ автоматического контроля и восстановления данных с использованием информационной избыточности и для функционирования всех средств обеспечения надежности, использующих временную избыточность.
Средства оперативного программного контроля включаются после исполнения прикладных и сервисных программ. Поэтому средства программного контроля обычно не могут обнаружить непосредственную причину возникновения искажения вычислительного процесса или данных, т.е. первичную ошибку, и фиксируют только последствия первичного искажения, т.e. вторичную ошибку. Результаты первичного искажения могут принимать катастрофический характер при запаздывании их обнаружения и локализации.
Для обеспечения надежности дефекты нужно обнаруживать с минимальным запаздыванием. При этом желательны минимальные затраты ресурсов компьютеров. Поэтому используются иерархические схемы контроля, при которых последовательно используются несколько методов в порядке углубления контроля и увеличения затрат до выявления источника искажения. Целесообразно акцентировать ресурсы на потенциально наиболее опасных дефектах и достаточно частых режимах восстановления: при искажениях программ и данных, при перегрузках по производительности и параллельном исполнении программ.