важно для использования мультиверсионных КП в комплексах управления системами реального времени. Решение первой из указанных проблем основывается на применении системы спецификаций мультиверсионного ПО, названной "V-Spec" (V-спецификации), которая определяет: ■ функциональное предназначение с учетом ограничений по времени исполнения, исходных данных и начального состояния версии ПС; ■ требования по внутреннему контролю ошибок и тестирования версий модуля; ■ требования по диверсификации программирования; ■ контрольные точки (сс-точки), в которых решающий алгоритм среды исполнения предполагается быть примененным для контроля всех версий; ■ параметры решающего алгоритма среды исполнения, используемые в каждой сс-точке; ■ возможные исходы исполнения, включая случай, когда решающий алгоритм не способе!i принять решение. Относительно систем поддержки мультиверсионного исполнения следует отметить, что в их основные функции входят: ■ решающий алгоритм или множество алгоритмов; • входные последовательности данных для всех версий; ■ внутриверсионная коммуникация; ■ синхронизация исполнения версий (если позволяет аппаратнопрограммный комплекс) при жестких временных ограничениях; * "локальное" управление исполнением каждой версии; ■ "глобальное" исполнение мультиверсионного ПО в совокупности с решающими функциями. 42 |
функционировании ПО; в NVS переключение на восстановление будет неверным, если большинство версий предоставят ошибочный результат в точке восстановления. Очевидно, что RBи NVSмодели сближаются, если приемочный тест выполняется с использованием NVS-метода, а решающему алгоритму NVS предшествует приемочный тест (фильтр, в соответствии с терминологией [54]), либо этот тест применяется, когда решающий алгоритм не способен сделать выбор [93, 94]. Определив основные элементы мультиверсионного программирования, отметим не менее важные проектные этапы, относящиеся к 1. спецификациям версий NVS-систем ПО (с учетом требований к их дальнейшему конкурентному исполнению в EE-среде с использованием внешних средств поддержки исполнения NVX); 2. непосредственному этапу программирования, учитывая, что основное требование NVP максимальная независимость исходов процесса и, соответственно, версий ПО; 3. созданию NVX-систем среды исполнения программных компонент мультиверсионного ПО как с высокой надежностью, так и с эффективными показателями по времени исполнения, что особенно важно для использования мультиверсионных КП в комплексах управления системами реального времени. Решение первой из указанных проблем основывается на применении системы спецификаций мультиверсионного ПО, названной "V-Spec" (Vспецификации), которая определяет функциональное предназначение с учетом ограничений по времени исполнения, исходных данных и начального состояния версии ПС; требования по внутреннему контролю ошибок и тестирования версий модуля; требования по диверсификации программирования; 49 контрольные точки (сс-точки), в которых решающий алгоритм NVXсреды предполагается быть примененным для контроля всех версий; точки восстановления (г-точки от recovery points), в которых осуществляется применение блока восстановления ошибочно выполненных версий ПО; параметры решающего алгоритма NVX-среды, используемые в каждой сси гточке; возможные исходы исполнения в NVX-среде, включая случай, когда решающий алгоритм не способен принять решение. В рамках проекта проведенного в Калифорнийском университете в ЛосАнджелесе в качестве языковых средств V-спецификаций использовались языки семейства Larch, PISLey, Prolog и т.д. Относительно систем поддержки мультиверсионного исполнения следует отметить, что в их основные функции входят: решающий алгоритм или множество алгоритмов; входные последовательности данных для всех версий; внутриверсионная коммуникация; синхронизация исполнения версий (если позволяет аппаратнопрограммный комплекс) при жестких временных ограничениях; "локальное" управление исполнением каждой версии; "глобальное" исполнение мультиверсионного ПО в совокупности с решающими функциями восстановления ошибочных версий по гточкам (локальный восстановительный блок в составе среды мультиверсионного исполнения). Внутреннее содержание указанных функций, например, раскрывается для наиболее известной из существующих NVX-систем DEDIX (DEsign Diversity experiment проект Калифорнийского университета в Лос-Анджелесе). Прототип системы поддержки мультиверсионного исполнения реализован в иМХ-ориентированной распределенной вычислительной сети LOCUS. 50 |