- •Котенок Андрей Владимирович
- •Содержание
- •Введение
- •Отказоустойчивые системы управления
- •Программная составляющая критичных по надежности систем управления
- •Надежностная характеристика программного модуля
- •Обеспечение надежности программ с помощью введения избыточности
- •Описание объекта исследования и его анализ
- •Методы повышения надежности программных систем
- •Моноверсионные модели
- •Обнаружение ошибок
- •Обработка исключительных ситуаций
- •Контрольная точка и перезапуск
- •Дублирование процессов
- •Разнообразие данных
- •Модели восстанавливающихся блоков
- •Простая модель восстанавливающихся блоков
- •Обобщенная модель восстанавливающихся блоков
- •Параллельная модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Мультиверсионное программирование с самопроверкой
- •Модель согласованных восстанавливающихся блоков
- •T/(n-1)-версионное программирование
- •Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация
- •Анализ требований к среде мультиверсионного исполнения
- •Требования для обеспечения простоты
- •Требования для обеспечения производительности
- •Требования для обеспечения компактности
- •Требования для обеспечения надежности
- •Требования для обеспечения универсальности
- •Применение мультиверсионной методологии к системе управления
- •Выбор способа реализации программных модулей и их взаимодействия со средой исполнения
- •Конструирование программной модели
- •Реализация общих алгоритмов функционирования среды исполнения
- •Реализация алгоритма выявления отказов программных модулей
- •Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
- •Алгоритм голосования абсолютным большинством (габ)
- •Алгоритм голосования согласованным большинством (гсб)
- •Алгоритм нечеткого голосования согласованным большинством (нгсб)
- •Медианное голосование
- •Программный комплекс среды мультиверсионного исполнения
- •Теоретическое исследование предельной надежности мультиверсионных моделей проектирования отказоустойчивых систем
- •Модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Исследование результатов работы реализованной среды исполнения
- •Применение методологии мультиверсионного программирования к оптимизационным алгоритмам отказоустойчивых систем
- •Методология выбора наилучшего алгоритма оптимизации
- •Классы тестовых функций Класс одномерных унимодальных функций.
- •Класс многоэкстремальных функций нескольких переменных.
- •Анализ результатов
- •Заключение
- •Список использованных источников
Дублирование процессов
Дублирование процессов использует две идентичные версии программы, выполняющиеся на различных процессорах [110]. Для восстановления используется метод контрольной точки и перезапуска. Обозначим процессоры как главный и второстепенный. Сначала главный процессор обрабатывает вход и генерирует выход, генерируя информацию о контрольных точках, отправляемую на второстепенный процессор. При обнаружении ошибки, второстепенный процессор загружает последнюю точку восстановления и начинает исполнять роль основного процессора. Тем временем, сбойный процессор отключается и проходит диагностическую проверку. Если требуется, производится его обслуживание и замена. После этого отремонтированный процессор становиться второстепенным и начинает получать точки восстановления от основного. Главное преимущество данного подхода заключается в том, что функционирование системы продолжается непрерывно, вне зависимости от происходящих сбоев системы.
Разнообразие данных
В некоторых случаях, применим метод разнообразия данных, который позволяет автоматически «обходить» отказы, связанные с определенными последовательностями входных данных. Смысл данного подхода заключается в том, часто на практике отказы проявляются на определенном наборе входных данных, в ситуациях, не смоделированных в процессе тестирования и отладки. Разнообразие данных часто используется совместно с методом контрольной точки и перезапуска с модернизацией входных данных при каждом повторе [116]. Цель каждого повтора заключается в генерации такого выхода, который являлся бы идентичным или логически эквивалентным. В общем случае, эквивалентность выходов является зависимой от конкретной задачи. Существует три основных модели разнообразия данных:
Модернизация входных данных (рисунки 1 .4 и 1 .5)
Рисунок 1.4. Точно восстановления и перезапуск с использованием метода разнообразия данных (модернизация входных данных)
Рисунок 1.5. Разнообразие данных с использованием модернизации входных данных
Модернизация входных данных с последующей обработкой полученного результата, для корректировки последствий внесенных изменений (рисунок 1 .6)
Рисунок 1.6. Разнообразие данных с использованием модернизации входных данных с постобработкой результата
Модернизация через декомпозицию входных данных. В этом случа, данные разбиваются на несколько частей и обрабатываются каждая часть своим алгоритмом, после этого соединяются к нужной форме выходных данных (рисунок 1 .7)
Рисунок 1.7. Разнообразие данных с использованием декомпозиции входных данных
Модели восстанавливающихся блоков
Существует несколько моделей восстанавливающихся блоков (МВБ): простая, обобщенная и параллельная. Рассмотрим их принципы [24, 25, 26].
Простая модель восстанавливающихся блоков
Главный принцип данной концепции можно сформулировать следующим образом: Пусть каждая программа состоит из nмодулей, а каждый модуль состоит из последовательности инструкций (функциональных сегментов). Пусть в программе присутствует проверочный и восстанавливающий сегмент. Если тест обнаруживает ошибку в результатах вычисления первого модуля, восстанавливается первоначальное состояние системы и активизируется второй. Эта процедура повторяется до тех пор, пока результат одного из модулей не будет принят как правильный. Если все модули содержат ошибку, то считается, что продолжение невозможно.