- •Котенок Андрей Владимирович
- •Содержание
- •Введение
- •Отказоустойчивые системы управления
- •Программная составляющая критичных по надежности систем управления
- •Надежностная характеристика программного модуля
- •Обеспечение надежности программ с помощью введения избыточности
- •Описание объекта исследования и его анализ
- •Методы повышения надежности программных систем
- •Моноверсионные модели
- •Обнаружение ошибок
- •Обработка исключительных ситуаций
- •Контрольная точка и перезапуск
- •Дублирование процессов
- •Разнообразие данных
- •Модели восстанавливающихся блоков
- •Простая модель восстанавливающихся блоков
- •Обобщенная модель восстанавливающихся блоков
- •Параллельная модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Мультиверсионное программирование с самопроверкой
- •Модель согласованных восстанавливающихся блоков
- •T/(n-1)-версионное программирование
- •Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация
- •Анализ требований к среде мультиверсионного исполнения
- •Требования для обеспечения простоты
- •Требования для обеспечения производительности
- •Требования для обеспечения компактности
- •Требования для обеспечения надежности
- •Требования для обеспечения универсальности
- •Применение мультиверсионной методологии к системе управления
- •Выбор способа реализации программных модулей и их взаимодействия со средой исполнения
- •Конструирование программной модели
- •Реализация общих алгоритмов функционирования среды исполнения
- •Реализация алгоритма выявления отказов программных модулей
- •Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
- •Алгоритм голосования абсолютным большинством (габ)
- •Алгоритм голосования согласованным большинством (гсб)
- •Алгоритм нечеткого голосования согласованным большинством (нгсб)
- •Медианное голосование
- •Программный комплекс среды мультиверсионного исполнения
- •Теоретическое исследование предельной надежности мультиверсионных моделей проектирования отказоустойчивых систем
- •Модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Исследование результатов работы реализованной среды исполнения
- •Применение методологии мультиверсионного программирования к оптимизационным алгоритмам отказоустойчивых систем
- •Методология выбора наилучшего алгоритма оптимизации
- •Классы тестовых функций Класс одномерных унимодальных функций.
- •Класс многоэкстремальных функций нескольких переменных.
- •Анализ результатов
- •Заключение
- •Список использованных источников
Реализация общих алгоритмов функционирования среды исполнения
При реализации среды мультиверсионного исполнения существует два момента, которым стоит уделить особое внимание: общий алгоритм функционирования СМВИ и алгоритм синхронизации потоков (одновременного запуска всех мультиверсий). От первого зависит внутренняя структура методов и, как следствие, показатели надежности и производительности. Второй является решающим в определении устойчивости поведения системы при критических нагрузках процессора.
При разработке общего алгоритма функционирования, следует особое внимание уделить корректной обработке потенциальных ошибок – выделить этапы, которых могут привести к отказу всей системы. Каждый блок представляет собой комплекс мер, реализуемые различными модулями системы (см. раздел 2.3.1).
Алгоритм синхронизации потоков системы был составлен на основании теории разработки мультизадачных систем [32][118]. Он использует автоматически сбрасывающиеся сигнальные объекты и функции ожидания сигнала, предоставляемые всеми современными операционными системами.
Разработанные алгоритмы приведены на рисунках 2 .14 и 2 .15.
Рисунок 2.14. Общий алгоритм функционирования СМВИ
(у блоков выделенных пунктиром имеется обработчик ошибочных ситуаций)
Рисунок 2.15. Схема выполнения одного этапа обработки данных
Реализация алгоритма выявления отказов программных модулей
Во время исполнения программного обеспечения возможны два вида отказов. Первый тип отказасвязан с нарушением нормального функционирования программы и возбуждением исключения. Это может произойти в случае попыток обращения по неверному адресу или деления на нуль. За перехват попыток обращения по неверному адресу и деления на нуль отвечает центральный процессор, возбуждающий исключения в ответ на эти ошибки. Исключение, возбужденное процессором, называетсяаппаратным. Но возбуждать исключения могут и операционная система и прикладные программы. Такие исключения называютсяпрограммные. Необработанное исключение в любом случае ведет к уничтожению процесса операционной системой.Второй тип отказасвязан с зацикливанием программы. В этом случае программа на протяжении длительного времени не возвращает результат. В системах управления время является критическим показателем, поэтому необходимо ввести в среду исполнение такой параметр каквремя отклика. Если программный модуль в течении длительного времени, большем чем заданное время отклика, не возвращает результат, то считать этот модуль отказавшим.
Выявление таким способом отказов позволит нам отбросить часть неверных результатов и не использовать их в решающем алгоритме.
Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
Определяющим звеном мультиверсионной системы является блок принятия решения. Этот блок разделяет результаты (выходы) многочисленных программных версий на «корректные» и «ошибочные» [3]. Существует несколько методик подобного разделения. Самые общие из них основываются на классификации выходов. Наиболее перспективными из этих методик являютсяголосование абсолютным большинством,голосование согласованным большинством, а такженечеткое голосование согласованным большинством. В рамках данной работы, мной были предложены улучшения этих методик, а именновзвешенное голосование согласованным большинствоминечеткое взвешенное голосование согласованным большинством. Методики этой группы основаны на сравнении выходов мультиверсий и размещении идентичных из них в одинаковые классы (подмножества). Однако, в случаях, когда расчеты выполняются не с целыми числами, определение идентичны выходы или нет, является затруднительным. Для разрешения этой проблемы введем понятиесоотношение равенства: мы будем говорить, что два числаравны, если они отличаются меньше чем на некоторое допустимое отклонение. Эти соотношения не требуют выполнения свойства транзитивности. Иными словами, если известно, что |a‑b| < ε и |b‑c| < ε, то отсюда не следует что |a‑c| < ε, гдеa,bиc– некоторые числа. Потенциальной проблемой методик данной группы является возможная неверная классификация выходов, и как следствие неверное принятие решения, что, в конечном счете, способно привести к отказу системы управления.
Вторая группа методик принимает решение без классификации выходов. В эту группу входят: медианное голосованиеивзвешенное медианное голосование. Они выбирают среднее значение из всех выходов как «корректное».