- •Котенок Андрей Владимирович
- •Содержание
- •Введение
- •Отказоустойчивые системы управления
- •Программная составляющая критичных по надежности систем управления
- •Надежностная характеристика программного модуля
- •Обеспечение надежности программ с помощью введения избыточности
- •Описание объекта исследования и его анализ
- •Методы повышения надежности программных систем
- •Моноверсионные модели
- •Обнаружение ошибок
- •Обработка исключительных ситуаций
- •Контрольная точка и перезапуск
- •Дублирование процессов
- •Разнообразие данных
- •Модели восстанавливающихся блоков
- •Простая модель восстанавливающихся блоков
- •Обобщенная модель восстанавливающихся блоков
- •Параллельная модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Мультиверсионное программирование с самопроверкой
- •Модель согласованных восстанавливающихся блоков
- •T/(n-1)-версионное программирование
- •Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация
- •Анализ требований к среде мультиверсионного исполнения
- •Требования для обеспечения простоты
- •Требования для обеспечения производительности
- •Требования для обеспечения компактности
- •Требования для обеспечения надежности
- •Требования для обеспечения универсальности
- •Применение мультиверсионной методологии к системе управления
- •Выбор способа реализации программных модулей и их взаимодействия со средой исполнения
- •Конструирование программной модели
- •Реализация общих алгоритмов функционирования среды исполнения
- •Реализация алгоритма выявления отказов программных модулей
- •Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
- •Алгоритм голосования абсолютным большинством (габ)
- •Алгоритм голосования согласованным большинством (гсб)
- •Алгоритм нечеткого голосования согласованным большинством (нгсб)
- •Медианное голосование
- •Программный комплекс среды мультиверсионного исполнения
- •Теоретическое исследование предельной надежности мультиверсионных моделей проектирования отказоустойчивых систем
- •Модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Исследование результатов работы реализованной среды исполнения
- •Применение методологии мультиверсионного программирования к оптимизационным алгоритмам отказоустойчивых систем
- •Методология выбора наилучшего алгоритма оптимизации
- •Классы тестовых функций Класс одномерных унимодальных функций.
- •Класс многоэкстремальных функций нескольких переменных.
- •Анализ результатов
- •Заключение
- •Список использованных источников
Конструирование программной модели
На основании разработанной функциональной структуры системы мультиверсионного исполнения программных модулей, спроектируем ее программную модель. Для этого распределим функциональные блоки по C++ классам. Тогда программная модель будет выглядеть так, как показано в таблице 2 .2. Данная модель классов, позволяет программно реализовать все рассмотренные ранее модели взаимодействия программных модулей со средой исполнения:
статическая компоновка
Объекты CAlgModule,CInput,COutput,CComparatorхранятся в виде исходных кодов, либо в статических библиотеках встраиваемых в исполняемый модуль на этапе компиляции.
компоновка с использованием динамических библиотек
CProjectзагружает внешние библиотеки с требуемыми объектами. Возможен вариант, когда некоторые объекты (например,CInputиCOutput) вставляются в проект статически, а остальные динамически – для этого надо лишь, в зависимости, от конкретной задачи указать это в конструкторе объектаCProject.
компоненты выполнены в виде отдельных исполняемых модулей.
В этом случае, в проект встраиваются вместо самих объектов, модули взаимодействия с ними, а сами объекты через программы-агенты исполняются в виде отдельного процесса. Их взаимодействие реализуется посредствам сетевого протокола либо общих участков памяти.
Таблица 2.2 Структура классов образующих программную модель СМВИ
Класс |
Функции |
CProject |
Класс проекта. Этот класс переопределяется при конструировании системы для задания конкретных функций и характеристик системы:
Все остальные классы СМВИ на этапе своей инициализации используют эту информацию. |
CNVPEE |
Основной объект, он конструирует всю систему и осуществляет связь между объектами CProject,CStatisticsиCManager. |
CStatistics |
Этот объект хранит статистику процесса выполнения расчета, рассчитывает и выдает по требованию других классов вероятность ошибочного результата конкретной версии. |
CManager |
Играет роль диспетчера всей системы: подготавливает к работе, согласует функционирование всех остальных модулей. |
CInput |
Отвечает за ввод данных, т.е. считывает показания устройств измерения. |
CLauncher |
Осуществляет пошаговое выполнения расчета версий, |
|
|
Продолжение таблицы 2 .2
Класс |
Функции | ||
|
помещение их состояний в статистику и корректирует неверные состояния версий по результатам блока решения. | ||
CAlgModule |
Алгоритмический модуль (А.М.). Исполняет роль версии расчета. |
| |
CDecision |
Блок решения. На данном этапе разработки, решение принимается простым голосованием без памяти: самая большая группа равных состояний - истинна, а все остальные - ошибочны, независимо от того, как часто каждая версия возвращает ошибочный результат. |
| |
CComparator |
Сравнение двух состояний. |
| |
COutput |
Отвечает за вывод данных, т.е. за передачу результатов расчета исполнительным механизмам. |
|