- •Котенок Андрей Владимирович
- •Содержание
- •Введение
- •Отказоустойчивые системы управления
- •Программная составляющая критичных по надежности систем управления
- •Надежностная характеристика программного модуля
- •Обеспечение надежности программ с помощью введения избыточности
- •Описание объекта исследования и его анализ
- •Методы повышения надежности программных систем
- •Моноверсионные модели
- •Обнаружение ошибок
- •Обработка исключительных ситуаций
- •Контрольная точка и перезапуск
- •Дублирование процессов
- •Разнообразие данных
- •Модели восстанавливающихся блоков
- •Простая модель восстанавливающихся блоков
- •Обобщенная модель восстанавливающихся блоков
- •Параллельная модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Мультиверсионное программирование с самопроверкой
- •Модель согласованных восстанавливающихся блоков
- •T/(n-1)-версионное программирование
- •Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация
- •Анализ требований к среде мультиверсионного исполнения
- •Требования для обеспечения простоты
- •Требования для обеспечения производительности
- •Требования для обеспечения компактности
- •Требования для обеспечения надежности
- •Требования для обеспечения универсальности
- •Применение мультиверсионной методологии к системе управления
- •Выбор способа реализации программных модулей и их взаимодействия со средой исполнения
- •Конструирование программной модели
- •Реализация общих алгоритмов функционирования среды исполнения
- •Реализация алгоритма выявления отказов программных модулей
- •Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
- •Алгоритм голосования абсолютным большинством (габ)
- •Алгоритм голосования согласованным большинством (гсб)
- •Алгоритм нечеткого голосования согласованным большинством (нгсб)
- •Медианное голосование
- •Программный комплекс среды мультиверсионного исполнения
- •Теоретическое исследование предельной надежности мультиверсионных моделей проектирования отказоустойчивых систем
- •Модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Исследование результатов работы реализованной среды исполнения
- •Применение методологии мультиверсионного программирования к оптимизационным алгоритмам отказоустойчивых систем
- •Методология выбора наилучшего алгоритма оптимизации
- •Классы тестовых функций Класс одномерных унимодальных функций.
- •Класс многоэкстремальных функций нескольких переменных.
- •Анализ результатов
- •Заключение
- •Список использованных источников
Обработка исключительных ситуаций
Исключительная ситуация– это динамическая ошибка, представляющая собой нарушение условий выполнения программы, вызывающее прерывание или полное прекращение ее работы. В рамках данного исследования, исключения представляют собой сигнал от механизма обнаружения ошибок с запросом выполнения соответствующей процедуры восстановления. При создании обработчика исключений требуется знать все возможные события (причины) возникновения исключения, а также их возможные эффекты на систему, для выбора соответствующих действий по восстановлению [110].
События вызывающие исключительные ситуации в программном модуле принято разделять на три класса [109]:
Интерфейсные исключения генерируются модулем при обнаружении недопустимого запроса. Этот тип исключений является частью самозащиты модуля и обрабатывается модулем, который выполнил запрос.
Локальные исключения посылаются механизмом обнаружения ошибок в выполнении какой-либо внутренней операции. Такие исключения обрабатываются самим модулем.
Аварийные исключения возникают в модуле, когда ошибка обнаружена, но механизм восстановления не смог ее обработать. Такие события сообщают модулю совершившему запрос, что функция не может быть выполнена.
Если структура системы, ее функции и механизмы обнаружения ошибок проработаны должным образом, то ошибки, возникающие в некоторый момент времени, в части взаимодействующих модулей будут изолированы, должным образом обработаны и не приведут к отказу всей системы.
Контрольная точка и перезапуск
Для моноверсионных моделей повышения отказоустойчивости существует несколько методов восстановления при ошибке. Наиболее часто используемым является метод контрольных точек и перезапуска [110].
Как было отмечено выше, большинство отказов остающихся после ввода в эксплуатацию является непредвиденными, зависящих от определенного состояния системы. Некоторые из таких отказов являются по своей природе случайными: они появляются, вызывают отказ и затем бесследно исчезают, не оставляя видимых причин своего возникновения [108]. В такой ситуации, обычно достаточно просто перезапустить модуль для успешного завершения его задачи (см. рисунок 1 .3). Преимущество данной методики заключается в том, что она может быть легко использована на любом уровне системы, и достаточно просто [39].
Рисунок 1.3. Логическое представление метода контрольной точки и перезапуска
Существует два способа перезапуска: статический и динамический. Статический перезапуск возвращает модуль в сохраненное состояние. Это может быть возврат в первоначальное состояние после запуска системы, или в одно из сохраненных состояний системы. Выбор осуществляется на основании состояния системы в момент обнаружения ошибки. Метод динамического перезапуска создает точки восстановления во время работы модуля. Состояние сохраняется через фиксированные интервалы времени или в заданных местах, между выполняемыми операциями, по некоторому правилу. Преимущество таких контрольных точек состоит в том, что при восстановлении нет необходимости отменять всю работу.
Серьезной проблемой возникающей при применении данного метода является существование необратимых действий [39]. Такие действия связаны с внешними событиями, которые не могут быть отменены простым восстановлением состояния и перезапуском процесса. Примерами необратимых действий является запуск ракеты либо спайка пары проводов. Перед выполнением подобных действий рационально сначала произвести дополнительные проверки (например, проверить, что наведены на нужную цель перед запуском ракеты).