Повышение надежности ПО путем резервирования

Другой перспективный путь повышения надежности ПО (и особенно ПО РВ) связан с созданием в программной системе некоторой избыточности. Применительно к ПО РВ различают четыре вида резервирования: временное, информационное, программное, программно-техническое.

Временное резервирование ПО заключается в многократном прогоне одного и того же программного комплекса с неизменными исходными данными Повышение надежности ПО путем резервирования - student2.ru и последующего анализа полученных результатов y (рис. 4.11 а).

Повышение надежности ПО путем резервирования - student2.ru

Рис. 4.11 а – Схема временного резервирования ПО (нагруженный вариант “два из трех”)

Подобное нагруженное резервирование позволяет устранять программные сбои и выявлять случайные устойчивые отказы, требующие восстановления программ. Анализ результатов Повышение надежности ПО путем резервирования - student2.ru Повышение надежности ПО путем резервирования - student2.ru - номер прогона ПО, на предмет выявления «неразумных» решений Повышение надежности ПО путем резервирования - student2.ru осуществляет эксперт (группа экспертов) или, реже специальная программа-анализатор (последнее возможно для тех хорошо изученных задач, для которых известны границы Г(у) множества Повышение надежности ПО путем резервирования - student2.ru ). Выбор правильного результата из ряда «разумных», но различающихся Повышение надежности ПО путем резервирования - student2.ru осуществляется по мажоритарному правилу «два из трех» или, реже, «три из пяти».

Временное резервирование реализуется достаточно просто, однако требует заметного l-кратного увеличения затрат машинного времени на получение решения у или повышения быстродействия ЭВМ (последнее существенно удорожает вычислительную систему).

С позиции экономии ресурсов ЭВМ более предпочтительно ненагруженное временное резервирование, когда повторные прогоны ПО выполняют только при появлении «неразумного» или «подозрительного» решения Повышение надежности ПО путем резервирования - student2.ru . Однако для реализации такого способа резервирования ПО РВ необходимо наличие программы-анализатора, которая автоматически идентифицирует и реализует с помощью ключа К режим повторного прогона (рис. 4.11 б).

Повышение надежности ПО путем резервирования - student2.ru

Рис. 4.11 б – Схема временного резервирования ПО (ненагруженный вариант)

Кроме того, ненагруженное временное резервирование ПО РВ предъявляет повышенные требования к быстродействию ЭВМ, правда в сравнительно редких случаях отказов программ.

Информационное резервирование основано на дублировании исходной информации Повышение надежности ПО путем резервирования - student2.ru и двукратном последовательном решении (одним и тем же ПО) задачи Повышение надежности ПО путем резервирования - student2.ru и Повышение надежности ПО путем резервирования - student2.ru с данными Повышение надежности ПО путем резервирования - student2.ru и эквивалентными им данными Повышение надежности ПО путем резервирования - student2.ru (рис. 4.12). Если Повышение надежности ПО путем резервирования - student2.ru , то ПО работоспособно, при Повышение надежности ПО путем резервирования - student2.ru имеет место устойчивый отказ какой-либо из программ ПО, при Повышение надежности ПО путем резервирования - student2.ru наблюдается сбой ПО и требуется еще раз решить задачу с данными Повышение надежности ПО путем резервирования - student2.ru и Повышение надежности ПО путем резервирования - student2.ru , и с помощью правила «два из трех» выбрать правильный результат. Функции анализатора АН выполняют эксперты или, при известных границах множества «разумных» решений Повышение надежности ПО путем резервирования - student2.ru , специальные программы-идентификаторы (рис. 4.12).

Повышение надежности ПО путем резервирования - student2.ru

Рис. 4.12- Схема нагруженного информационного резервирования ПО

Информационное резервирование допускает нагруженный и/или ненагруженный режимы работы. Основной трудностью при реализации информационного резервирования ПО РВ является получение второго набора исходных данных Повышение надежности ПО путем резервирования - student2.ru , количественно и семантически эквивалентных данным Повышение надежности ПО путем резервирования - student2.ru .

Программное резервирование ПО предусматривает наличие двух (или более) алгоритмов Повышение надежности ПО путем резервирования - student2.ru , Повышение надежности ПО путем резервирования - student2.ru решения одной и той же задачи с одинаковыми исходными данными Повышение надежности ПО путем резервирования - student2.ru и двух ПО1 и ПО2 (рис. 4.13).

Повышение надежности ПО путем резервирования - student2.ru

Рис. 4.13 – Схема ненагруженного программного резервирования ПО с разными операторами А1 и А2

Здесь возможно нагруженное и ненагруженное резервирование. В первом случае исходная информация x постоянно перерабатывается на одной ЭВМ двумя последовательно выполняемыми ПО1 и ПО2, результаты действия которых Повышение надежности ПО путем резервирования - student2.ru и Повышение надежности ПО путем резервирования - student2.ru сравниваются в анализаторе между собой и если они близки в определенном смысле, то выносится заключение об отсутствии отказа ПО. Если при этом Повышение надежности ПО путем резервирования - student2.ru , то ПО считается исправным и за решение задачи принимается Повышение надежности ПО путем резервирования - student2.ru или Повышение надежности ПО путем резервирования - student2.ru или их среднее. При Повышение надежности ПО путем резервирования - student2.ru и Повышение надежности ПО путем резервирования - student2.ru выполняется повторный прогон ПО1 и если новый результат Повышение надежности ПО путем резервирования - student2.ru , то объявляется сбой программного обеспечения 1. Наконец, если при повторном прогоне ПО1 снова Повышение надежности ПО путем резервирования - student2.ru , то имеет место отказ программного обеспечения 1, которое направляется на восстановление, а ПО2 начинает функционировать в режиме временного резервирования.

При ненагруженном резервировании постоянно функционирует только одно ПО1 (или ПО2), обрабатывающее данные x. Если анализатор идентифицирует случайное событие Повышение надежности ПО путем резервирования - student2.ru , то исходная информация x вводится и в ПО2, которое получает решение задачи Повышение надежности ПО путем резервирования - student2.ru . Дальнейший алгоритм анализа Повышение надежности ПО путем резервирования - student2.ru , Повышение надежности ПО путем резервирования - student2.ru (и возможно Повышение надежности ПО путем резервирования - student2.ru ) таков же, как и при нагруженном резервировании.

Программное резервирование позволяет эффективно выявлять и устранять сбои ПО и случайные отказы программ, которые вызываются первичными ошибками, вносимыми в ПО на начальных этапах его жизненного цикла. Вместе с тем программное резервирование вызывает более чем двукратное увеличение стоимости ПО, так оно требует удвоения объема алгоритмизации и программирования, двукратного увеличения объема запоминающего устройства и машинного времени ЭВМ на прогоны ПО1 и ПО2. В связи с этим программное обеспечение находит, как правило, широкое применение в АСУ РВ, применяемым для автоматизации ответственных объектов.

Программно-техническое резервирование представляет собой расширенный вариант программного резервирования, реализуемого с помощью нескольких ЭВМ (рис. 4.14).

Повышение надежности ПО путем резервирования - student2.ru

Рис. 4.14 – Схема нагруженного программно-технического резервирования ПО и ЭВМ

Такой способ резервирования предполагает использование как минимум двух ЭВМ1 и ЭВМ2 , двух алгоритмов Повышение надежности ПО путем резервирования - student2.ru , Повышение надежности ПО путем резервирования - student2.ru решения одной и той же задачи Повышение надежности ПО путем резервирования - student2.ru , и наконец, двух независимо написанных программных обеспечений ПО1 и ПО2, выполняющих решения задач Повышение надежности ПО путем резервирования - student2.ru и Повышение надежности ПО путем резервирования - student2.ru (рис. 4.14). Возможно нагруженное резервирование (работают ЭВМ1 и ЭВМ2, функционируют соответственно ПО1 и ПО2, анализатор с помощью правил «два Повышение надежности ПО путем резервирования - student2.ru из двух» и «два из трех» идентифицирует безотказную работу программ, сбои и случайные отказы) и ненагруженное резервирование (ЭВМ1 постоянно решает задачу Повышение надежности ПО путем резервирования - student2.ru , ЭВМ2 с ПО2 находится в «теплом» или, реже, «холодном» резерве; анализатор идентифицирует безотказность ПО при Повышение надежности ПО путем резервирования - student2.ru , сбои программ по правилу «два из трех» и случайные отказы ПО или ЭВМ при Повышение надежности ПО путем резервирования - student2.ru , Повышение надежности ПО путем резервирования - student2.ru ).

Программно-техническое резервирование несомненно самый дорогой способ повышения надежности ПО и ЭВМ, однако он наиболее универсален и позволяет уменьшить риск отказа АСУ РВ из-за ошибок алгоритмического и, частично, программно-технического обеспечения системы реального времени. Эта особенность программно-технического резервирования способствует его широкому применению в современных распределенных АСУ ТП, работающих, как правило, в реальном времени. Так, например, в середине 90-ых годов ХХ века около половины подобных систем управления использовало нагруженное программно-техническое резервирование, в 70 % АСУ ТП применялось «холодное» или «теплое» резервирование ПО и управляющих ЭВМ.

Литература

1. Ястребенецкий М.А., Иванова Г.М. Надежность АСУ ТП. /Учеб.пособие для вузов. М.: Энергоатомиздат, 1989 - 264 с.

2. Надежность АСУ. / Учеб.пособие для вузов/ Под ред. Я.А.Хетатурова. М.: Высшая школа, 1979 - 287 с.

3. Шенброт И.М., Алиев В.М. Проектирование вычислительных систем распределенных АСУ ТП. М.: Энергоатомиздат, 1989 - 88 с.

4. Тейер Т., Липов М., Нельсон Э. Надежность программного обеспечения. М.: Мир, 1981 - 323 с.

5. Пальчун Б.Н., Юсупов Р.М. Оценка надежности программного обеспечения. Л.: Наука, 1994.

6. Защита программного обеспечения: Пер.с англ. / Под ред. Д. Гроувера. М.: Мир, 1992.

7. Шураков В.В. Надежность программного обеспечения систем обработки данных. /Учебн., М.: Финансы и статистика, 1987 - 272 с.

Наши рекомендации