Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FINAL.doc
Скачиваний:
80
Добавлен:
04.06.2015
Размер:
1.29 Mб
Скачать
      1. Мультиверсионное программирование с самопроверкой

Мультиверсионное программирование с самопроверкой (МВПС, от англ. “N Self‑Checking programming”) [44] использует несколько версий программных модулей в структурных вариациях моделей восстанавливающихся блоков с мультиверсионного программирования. МВПС использует проверки на допустимость так, как показано на рисунке 1 .10. Мультиверсии и проверочный модуль должны разрабатываться независимо лишь по общей спецификации. Основное отличие данной модели от МВБ, заключается в использовании различных проверок для различных версий модулей. Подобно восстанавливающимся блокам, версии и их проверочные модули могут выполняться как последовательно, так и параллельно, но выход принимается только от того модуля, который прошел наилучшим образом проверку на допустимость. Последовательное исполнение требует использования контрольных точек, а параллельное – алгоритмов поддерживающих постоянство входных данных и состояния системы.

Рисунок 1.10. Мультиверсионное программирование с самопроверкой проверочными модулями

Данная методология может использовать обнаружение ошибок с помощью сравнения (рисунок 1 .11). Подобно просто мультиверсионному программированию, принятие решения происходит с помощью специального модуля, но данный модуль получает дополнительно результаты проверки выходов каждого модуля. Такое дополнение МВПС, теоретически должно разрешать ситуации, когда несколько пар, прошли сравнение, но оказались с различными выходами.

Рисунок 1.11. Мультиверсионное программирование с самопроверкой сравнением

      1. Модель согласованных восстанавливающихся блоков

Модель согласованных восстанавливающихся блоков [114] (см. рисунок 1 .12) соединяет в себе модели мультиверсионного программирования и восстанавливающихся блоков для повышения надежности более, чем это достижимо с помощью только одного из подходов. Недостатком МВБ является трудность разработки эффективных алгоритмов для проверочного модуля, и ошибка проверки может привести к отказу системы. С другой стороны, в ситуациях, когда существует несколько «корректных» результатов, использование алгоритмов голосования сталкивается с трудностями в принятии решения.

Согласованные восстанавливающиеся блоки принимают решение в два этапа. На первом этапе, используется алгоритм принятия решений подобный мультиверсионному. Если на этом этапе произошел сбой, то происходит переход на второй этап, на котором используется проверка на приемлемость, как в модели восстанавливающихся блоков. В противном случае, используется результат, полученный на первом этапе. Не смотря на то, что данная методология более сложна, чем отдельные модели, исследования показывают, что такой подход обладает потенциалом создания более надежного программного обеспечения [114]. Использование слова «потенциал» в данном случае важно, т.к. сложность системы сама по себе является фактором уменьшения надежности.

Рисунок 1.12. Модель согласованных восстанавливающихся блоков

      1. T/(n-1)-версионное программирование

t/(n-1)-версионное программирование было предложено Д. Ксью и Б. Рэнделом в 1997 году [111]. Главное отличие данной модели от предыдущей, заключается в механизме выборе результата среди мультиверсий. Блок принятия решений построен в соответствии с теорией диагностики отказов систем [110]. Данная модель содержит n-мультиверсий и использует t/(n‑1)-меру диагностирования для изоляции сбойных модулей в набор с размером не более (n-1), при условии что среди них не болееtсбойных модулей [111]. Следовательно, в системе будет по-крайней мере один не сбойный модуль, выход которого можно использовать в качестве результата расчетов. t/(n‑1)‑версионное программирование выгодно отличается от других моделей тем, что сложность механизма принятия решения в нем увеличивается в порядке O(n). Потенциально данный подход способен противостоять множественным отказам среди мультиверсий (межверсионным ошибкам).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]