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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

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

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

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

Мультиверсионная среда исполнения оптимизационных алгоритмов: программная реализация

2.1. Анализ требований к среде мультиверсионного исполнения

В рамках решаемых данным исследованием задач, были предъявлены следующие требования к разрабатываемой системе: простота, надежность, производительность, компактность и универсальность.

Требования для обеспечения простоты

Простота включает в себя такие требования к СМВИ как: отсутствие избыточных компонентов, четкое разделение функций между модулями и легкость применения системы исполнения под конкретную задачу. Сложность и излишняя разветвленность структуры не только снижают производительность, но также увеличивают вероятность ошибки в самой среде. Удовлетворение этих требований также позволяет снизить материальные и временные затраты на внедрение системы в производственный процесс.

 

Требования для обеспечения производительности

Производительность, в свою очередь, складывается из таких факторов как отсутствие избыточных связей между структурными компонентами системы и минимальные потери процессорного времени, затрачиваемые на работу внутренних алгоритмов самой системы исполнения. Эта группа требований является одной из самых главных, потому что обеспечивает реальность времени программных систем управления основанных на принципах мультиверсионного программирования. Это очень важно, так как чем меньше времени потребляет СМВИ, тем больше его остается программным модулям, выполняющим математический расчет. А мультиверсии требуют больших процессорных мощностей, как за счет собственной сложности, так и за счет количества мультиверсий.

Чтобы удовлетворить данные требования необходимо хорошо проработать программную модель системы и, по возможности, сократить число циклов и разветвлений.

 

Требования для обеспечения компактности

Компактности среды означает низкое количество потребляемой памяти. В свою очередь, требуемый размер памяти складывается из памяти занимаемой самим кодом среды мультиверсионного исполнения и рабочей памяти (или памяти требуемой для хранения внутренних данных).

Эти требования обеспечиваются за счет оптимизации всех циклов и разветвлений исходного кода программы, осуществляемой как на этапе разработки программной модели системы, так и после этапа тестирования и отладки.

 

Требования для обеспечения надежности

Под надежностью среды мультиверсионного исполнения программных модулей понимается способность своевременно выдавать корректный результат вычислений. Эта способность зависит от таких факторов как:

§ отсутствие каких-либо ошибок в программном коде самой среды;

§ устойчивость СМВИ к ошибкам и отказам модулей;

§ корректная обработка любых ошибочных ситуаций (например, когда невозможно принять решение, возникновение внутренней ошибки системы, нехватка ресурсов и т.д.).

Следствием недостаточной надежности могут быть ситуации от выдачи неверного результата решающим алгоритмом, до краха всей системы.

Удовлетворение этим требованиям осуществляется за счет избыточности кода для обработки всех ошибочных ситуаций (там, где они могут возникнуть) и высоким уровнем инкапсуляции и скрытия данных.

 

Требования для обеспечения универсальности

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

 

Резюмируя вышеизложенное, можно изобразить все требования так, как представлено в таблице 2.1.

 


 

 

Таблица 2.1 Требования к разрабатываемому программному комплексу



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 261; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.197.201 (0.008 с.)