- •Котенок Андрей Владимирович
- •Содержание
- •Введение
- •Отказоустойчивые системы управления
- •Программная составляющая критичных по надежности систем управления
- •Надежностная характеристика программного модуля
- •Обеспечение надежности программ с помощью введения избыточности
- •Описание объекта исследования и его анализ
- •Методы повышения надежности программных систем
- •Моноверсионные модели
- •Обнаружение ошибок
- •Обработка исключительных ситуаций
- •Контрольная точка и перезапуск
- •Дублирование процессов
- •Разнообразие данных
- •Модели восстанавливающихся блоков
- •Простая модель восстанавливающихся блоков
- •Обобщенная модель восстанавливающихся блоков
- •Параллельная модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Мультиверсионное программирование с самопроверкой
- •Модель согласованных восстанавливающихся блоков
- •T/(n-1)-версионное программирование
- •Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация
- •Анализ требований к среде мультиверсионного исполнения
- •Требования для обеспечения простоты
- •Требования для обеспечения производительности
- •Требования для обеспечения компактности
- •Требования для обеспечения надежности
- •Требования для обеспечения универсальности
- •Применение мультиверсионной методологии к системе управления
- •Выбор способа реализации программных модулей и их взаимодействия со средой исполнения
- •Конструирование программной модели
- •Реализация общих алгоритмов функционирования среды исполнения
- •Реализация алгоритма выявления отказов программных модулей
- •Реализация алгоритмов принятия решения о корректности или ошибочности состояний мультиверсий
- •Алгоритм голосования абсолютным большинством (габ)
- •Алгоритм голосования согласованным большинством (гсб)
- •Алгоритм нечеткого голосования согласованным большинством (нгсб)
- •Медианное голосование
- •Программный комплекс среды мультиверсионного исполнения
- •Теоретическое исследование предельной надежности мультиверсионных моделей проектирования отказоустойчивых систем
- •Модель восстанавливающихся блоков
- •Мультиверсионное программирование
- •Исследование результатов работы реализованной среды исполнения
- •Применение методологии мультиверсионного программирования к оптимизационным алгоритмам отказоустойчивых систем
- •Методология выбора наилучшего алгоритма оптимизации
- •Классы тестовых функций Класс одномерных унимодальных функций.
- •Класс многоэкстремальных функций нескольких переменных.
- •Анализ результатов
- •Заключение
- •Список использованных источников
Обеспечение надежности программ с помощью введения избыточности
Отсутствие физического разрушения компонент функционирующего комплекса программ позволяет добиваться высокой автоматизации программного восстановления. Главной задачей становится восстановление за время, не превышающее порогового значения между сбоем и отказом. В результате можно преобразовать отказы в сбои и тем самым улучшить показатели надежности функционирования системы. Для решения этой задачи в программной системе должны быть средства, позволяющие:
проводить систематический контроль и обнаруживать аномалии процесса функционирования или состояния программ и данных;
диагностировать обнаруженные искажения; выбирать методы и средства оперативного восстановления (рестарта);
реализовывать оперативное восстановление нормальной работоспособности;
регистрировать каждый происшедший сбой или отказ и обобщать с данными предыдущих искажений для выявления систематических случаев, требующих доработки программ или аппаратуры.
Реализация средств с такими функциями осуществляется за счет введения избыточностив программы, данные и процесс функционирования программного комплекса:
программной, включающей все программные компоненты, предназначенные для контроля, обнаружения, диагностики и восстановления работоспособности;
информационной, заключающейся в дублированном хранении данных и средств кодовой помехозащиты информации;
временной, состоящей в выделении необходимых резервов процессорного времени ЭВМ на исполнение программ, обеспечивающих оперативный контроль и восстановление (рестарт) функционирования.
Перечисленные виды избыточности используются совместно и требуют некоторых ресурсов ЭВМ по объему оперативной памяти, памяти команд и производительности. Доля этих ресурсов обычно находится в пределах 3-10 % от максимального значения, однако при таких даже относительно небольших затратах надежность функционирования (наработка на отказ) программ возрастает на один-два порядка.
Критерии, используемые в теории надежности, являются статистическими и в том или ином виде учитывают временные показатели. В зависимости от целевого назначения систем для анализа показателей надежности их целесообразно разделить на два класса: невосстанавливаемые и восстанавливаемые. Для оценки надежности восстанавливаемых систем (программ) необходимо знать характеристики многократных отказов и восстановлений в процессе их функционирования. Процесс восстановления достаточно полно описывается показателями: вероятностью восстановления за некоторое время, плотностью распределения времени восстановления и средним временем восстановления.
Объединение характеристик отказов и восстановлений производится в следующих критериях: наработка на отказ икоэффициент готовности. Значение коэффициента готовности соответствует доле времени полезной работы программ на достаточно большом интервале, содержащем отказы и восстановления. Для оценки стареющей и разрушающейся аппаратуры в теории надежности вводится ряд показателей, которые неприменимы к сложным КП.
При искажении вычислительного процесса или данных задача состоит в максимально быстром обнаружении искажения, возможно точной классификации типа уже имеющихся и возможных последствий искажения, а также в проведении мероприятий, обеспечивающих быстрое восстановление нормального функционирования КП. Неизбежность ошибок в сложных программных системах, искажений исходных данных и аппаратных сбоев приводит к необходимости регулярной проверки процесса исполнения программ и сохранности данных. В процессе проектирования недостаточно создать правильные программы, выдающие верные результаты при идеальных исходных данных и абсолютном отсутствии любых возмущений. Требуется разрабатывать надежные программы, устойчивые к различным возмущениям и способные сохранять достаточное качество выходных результатов в реальных условиях функционирования. В любых ситуациях, прежде всего, должны исключаться катастрофические последствия и длительные отказы или в максимальной степени смягчаться их влияние на результаты, выдаваемые пользователю.
Избыточность для обеспечения надежности функционирования КП используется, прежде всего, для контроля и селекции искажений вычислительного процесса или данных и для выработки мер по снижению последствий этих аномалий. Основная задача состоит в ограничении или исключении возможности аварийных последствий, соответствующих отказу системы в процессе функционирования.
Под временной избыточностью понимается использование некоторой части производительности ЭВМ для контроля исполнения программ и восстановления вычислительного процесса. Для этого при проектировании программ должен предусматриваться запас производительности, который затем используется для контроля и повышения надежности функционирования. Диагностика искажений и операций восстановления требует в общем случае небольшой интервал времени, который выделяется либо за счет резерва, либо за счет сокращения времени решения функциональных задач.
Информационная избыточностьсостоит в дублировании накопленных исходных и промежуточных данных, обрабатываемых КП. Избыточность используется для сохранения достоверности данных, которые в наибольшей степени влияют на нормальное функционирование программ или требуют значительного времени для восстановления. Информационная избыточность может способствовать не только обнаружению искажений данных, но и устранению ошибок. Для этого данные защищают двух-, трехкратным дублированием с соответствующей дисциплиной контроля сохранности и периодического обновления.
Программная избыточность используется для контроля и обеспечения достоверности наиболее важных результатов обработки информации. Она заключается в применении в КП нескольких вариантов программ, различающихся методами решения некоторой задачи или программной реализации одного и того же метода. Программная избыточность необходима также для реализации программ контроля и оперативного восстановления данных с использованием информационной избыточности и для функционирования всех средств защиты, использующих временную избыточность.
Последовательный характер исполнения программ процессором ЭВМ приводит к тому, что средства программного контроля включаются после исполнения рабочих программ. Поэтому средства программного контроля не могут обнаруживать непосредственное возникновение искажения вычислительного процесса или данных и фиксируют, как правило, только последствия первичного искажения. Последствия такого первичного искажения в ряде случаев могут развиваться во времени и принимать катастрофический характер отказа при увеличении запаздывания в обнаружении первичного искажения. Факт наличия любого искажения желательно обнаруживать при минимальных затратах ресурсов ЭВМ и с минимальным запаздыванием. Это приводит к использованию иерархических схем контроля, при которых несколько методов используется последовательно в порядке углубления контроля и увеличения затрат до достоверного выявления искажения. С точки зрения построения средств защиты и распределения ресурсов ЭВМ можно выделить искажения результатов трех типов:
приводящие к прекращению выполнения основных функций КП на длительное или неопределенное время;
кратковременно, но значительно искажающие отдельные результаты по их смысловому содержанию или величине;
мало и кратковременно влияющие на результаты, выдаваемые программами.
Такое качественное деление искажений предопределяет распределение ресурсов по защите. Наибольшие ресурсы целесообразно выделять и в максимальной степени следует принимать меры защиты от искажений информации и вычислительного процесса первого типа, последствия которых могут проявляться в следующем виде:
зацикливание, то есть последовательная повторяющаяся реализация определенной группы команд, не прекращающаяся без внешнего вмешательства;
останов и прекращение решения функциональных задач; искажение процессов взаимного прерывания программ, приводящее к блокировке возможности некоторых типов прерываний; прекращение или значительное снижение темпа решения некоторых задач вследствие перегрузки ЭВМ по пропускной способности;
значительное искажение или потеря накопленной информации о текущем состоянии внешней среды.
Искажения информации и вычислительного процесса второго типатакже весьма опасны, и для защиты от них следует применять эффективные меры. Эти искажения могут проявляться в следующем виде:
пропуск модуля или группы программ;
выход на программы или их части, резко искажающие результаты;
обработка ложных или сильно искаженных сообщений.
Искажения третьего типахарактерны в основном для квазинепрерывных величин, вследствие чего возможны небольшие отклонения результатов. Эти ошибки в среднем мало искажают общие результаты, однако отдельные выбросы могут сильно влиять на функционирование КП и требуется эффективная защита от редких значительных отклонений результатов.
Перечисленные типы искажений существенно различаются не только по степени изменения результатов, но и по длительности проявления их последствий. В зависимости от степени проявления и причин обнаруженных искажений применяются различные оперативные меры для ликвидации их последствий, восстановления информации и сохранения устойчивости процессов вычислений и управления. Выбор метода оперативного восстановления происходит в условиях значительной неопределенности сведений о характере предотказовой ситуации и ее возможного влияния на работоспособность КП. Кроме того, восстановление работоспособности желательно производить настолько быстро, чтобы отказовую ситуацию можно было свести до уровня сбоя.
Введение средств контроля и помехозащиты в программы позволяет скомпенсировать их неполную отлаженность и снизить влияние возмущений различных типов. Однако одними средствами контроля и обеспечения программной помехозащиты невозможно достигнуть высокой надежности функционирования КП. Возникает оптимизационная задача распределения ресурсов на отладку и на помехозащиту, обеспечивающих заданную надежность функционирования программ при минимальных суммарных затратах. Таким образом, так же как в аппаратурных комплексах, заданной надежности можно достигнуть либо путем повышения надежности компонент (отладкой программ), либо путем введения избыточности для контроля и резервирования (контроль и помехозащита программ), либо совместным сбалансированным применением этих методов повышения надежности.