Научная статья на тему 'К вопросу формирования мультиверсионного программного обеспечения с учетом ресурсных ограничений'

К вопросу формирования мультиверсионного программного обеспечения с учетом ресурсных ограничений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
228
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОПТИМИЗАЦИЯ / НАДЕЖНОСТЬ / МУЛЬТИВЕРСИОННОЕ ПРОГРАММИРОВАНИЕ / OPTIMIZATION / RELIABILITY / MULTIVERSION PROGRAMMING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Капчинский Илья Аркадьевич, Ковалев Павел Владимирович, Лайков Алексей Николаевич, Гриценко Сергей Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Капчинский Илья Аркадьевич, Ковалев Павел Владимирович, Лайков Алексей Николаевич, Гриценко Сергей Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON MULTIVERSION SOFTWARE FORMATION CONSIDERING THE RESOURCE CONSTRAINTS

The multiversion programming methodology which guarantees that mistakes of one software versions will not lead to infringement of the control process by complex objects where rigid requirements for reliability and autonomy of functioning are typical.

Текст научной работы на тему «К вопросу формирования мультиверсионного программного обеспечения с учетом ресурсных ограничений»

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

ига т

YYcjxj ®rnax, Yrjxj £R <=1 j=1 j=i

или, альтернативно, в виде

т п т

Yrjxj ®min YYcx ^C j=l i = l j=l

где R - имеющийся запас ресурсов на реализацию системы; С - минимальный требуемый уровень эффективности; х. - переменная принятия решения, равная единице, если i-й способ приведения стереотипных схем в диссонанс включается в формируемый набор, и равная нулю в противном случае. Решение данной задачи является чисто технической проблемой.

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

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

Библиографический список

1. Эшби, У Р. Введение в кибернетику / У Р. Эшби. М. : КомКнига, 2006.

2. Семенкин, Е. С. Метод обобщенного адаптивного поиска для синтеза систем управления сложными объектами / Е. С. Семенкин, В. А. Лебедев. М. : МАКС Пресс, 2002.

E. S. Semenkin, M. A. Styugin

PROTECTION AGAINST INVESTIGATION AND APPLICATION IN SECURITY SYSTEMS

Informational interaction of a violator and a protected system in the form of stereotypic investigation schemes is considered. The attack effectiveness decreasing method based on artificial increase of the system diversification is suggested. Security systems design automation problem is described.

Keywords: informational interaction with a violator, stereotypic schemes, risk reducing in security systems.

УДК004.056

И. А. Капчинский, П. В. Ковалев, А. Н. Лайков, С. Н. Гриценко

К ВОПРОСУ ФОРМИРОВАНИЯ МУЛЬТИВЕРСИОННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С УЧЕТОМ РЕСУРСНЫХ ОГРАНИЧЕНИЙ

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

Ключевые слова: оптимизация, надежность, мультиверсионное программирование.

Проблеме формирования программных комплексов (ПК), проектируемых на основе принципов программной избыточности, в настоящее время уделяется значительное внимание. Проблематика проектирования программных комплексов с использованием методологии мультиверсионного программирования рассматривалась в работах А. Авижиениса, Н. Ашрафи, О. Бермана, М. Катлер, Дж. Ву, К. Яо, Р. К. Скотта, Д. Мак Аллистера, К. Е. Гросспитча и мн. др. [1-5]. Разрабатываются новые методы оптимизации версионного состава программного комплекса, новые системы формирования структуры программного комплекса, однако не достаточно внима-

ния уделяется разработке методик формирования структуры мультиверсионного программного комплекса с учетом временных и ресурсных ограничений [1]. Основной задачей формирования мультиверсионного программного обеспечения является оптимизация версионного состава программного комплекса. В качестве критерия оптимизации обычно выбирают надежность комплекса.

В научных исследованиях, например, в работе [2] уже рассматривалось введение ограничений на ресурсы и время выполнения программы, но предложенный алгоритм требует больших вычислений и сложен в реализации. Кроме того, если временные ограничения вводятся

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

Методология авторов работ [3; 4], исследующих данный вопрос, основывается на следующих положениях:

- ПО проектируется методом модульного программирования;

- рассматриваются системы, построенные на основании методологии мультиверсионного программирования;

- версии модулей разрабатываются независимо друг от друга и их параметры надежности и стоимости могут быть оценены;

- реализуется статическое распределение задач с известным временем обслуживания.

В работе рассматривается следующая модель: система конструируется из I задач, для решения каждой из которых назначается определенный программный модуль. Связи между задачами определяются в виде графа задач и также могут быть представлены в виде матрицы инцидентности. Некоторые из задач могут быть структурно идентичны или одинаковы, что позволяет для их решения использовать одинаковые модули (цикличное использование модулей или эксплуатация одного и того же модуля с разными параметрами). Пусть J - число используемых программных модулей. Следовательно, I задач можно разбить на J классов. Через n, j = 1, ..., J обозначим число задач класса j, а через А. - множество индексов задач этого класса

card A. = n., j = 1, ..., J. (1)

J J 7J 7 7 v '

Предполагается, что, учитывая методологию мультиверсионного программирования, имеется К версий модуля J, используемого для решения j-го класса задач (j = 1,., J), т. е. степень избыточности может варьироваться в зависимости от критичности задачи или имеющегося набора версий. Для формального описания использования нескольких версий одного программного модуля вводится следующая булева переменная [5; 6]: Xk = 1, если для решения задачи i класса j используется k-я (kj = 1, ..., Kj) версия модуля j, и 0 - в противном случае.

Множество X = (Xj ), i = 1, ..., I; j = 1, ..., J; k. = 1, ...,

K булевых переменных Xjj называется вектором конфигурации системы и представляет возможный способ назначения версий программных модулей задачам в системе.

Вводятся следующие обозначения:

- Rkj - оцениваемая надежность версии k. модуля j: (RkJ = 1 - Pkj), где P - соответствующая функция распределения отказов;

- R. - оцениваемая надежность отказоустойчивого модуля j как комбинации К независимых версий;

- R - оцениваемая надежность всего комплекса ПО.

Условие реализации задачи класса j одной из версий

модуля в терминах булевых переменных может быть выражено следующим образом:

X Xj = nj ,j = 1, •••, J. (2)

1j EAj

Тогда задача состоит в максимизации надежности

j

maxR = П Rj , (3)

j=1

где

К, k

J .

rj= 1 -ПО - R»)‘

kJ=1

с дополнительными ограничениями

X Xk ^ nj ,j = 1, ..., J. (4)

ij EAj

Здесь выражение (4) определяет то, что в мультивер-сионной системе для некоторой задачи может использоваться более одной версии программного модуля.

С целью описания процессов обслуживания задач в системе вводится так называемый вектор временной развертки (ВВР) набора задач, определяемый как t ^.^ ti ^ ti}, где t - момент времени, в который начинается обслуживание i-й (i = 1, ., I) задачи. Независимо друг от друга компоненты ВВР должны удовлетворять условиям

tl < tt < tu"i = 1,..., I,

I и w w w w

где ti и ti - самый ранний и самый поздний моменты времени соответственно, когда может начаться обслуживание задачи i; оба параметра зависят от значений времени выполнения предшествующих задач. Очевидно, что временные критерии улучшаются варьированием параметра t в рамках величин tl и t'U.

Блок-схема алгоритма формирования ВВР ресурсов изображена на рис. 1. Алгоритм заключается в последовательном переборе всех путей следования в порядке убывания времени их выполнения и обработки каждого модуля в цепочке. Каждый модуль, во-первых, проверяется на его включенность в ВВР, далее определяется временной промежуток, в течение которого предполагается выполнение модуля.

Алгоритм поиска начального и конечного момента времени представлен в виде блок-схемы на рис. 2. В качестве начального момента времени используем момент времени, когда заканчивается выгрузка параметров последних из модулей, от которых зависит текущий. Это соответствует моменту времени, когда мы можем загружать параметры, поэтому мы корректируем начальное время, уменьшая его на время загрузки модуля, которое нам известно заранее [7].

Здесь t*, i = 1... nm - параметры вектора временной развертки; k - версия программного модуля; Nm - программные звенья; nx - длина пути; 1 - номер выполняемого звена; (a*)1kJ и (a*)\k - элементы матрицы связанности A, структура которой изображена на рис. 3.

Операция считается удачной, если нашлось такое tjart, для которого для всех необходимых ресурсов имеется достаточное количество свободного объема до нарушения временного ограничения. В случае, когда время окончания загрузки превышает tmd, необходимо исключить из ВВР ресурсов все зависимые от текущего модуля отрезки цепочек, учтенные ранее.

Программный комплекс имеет N.n входов и NM выходов, в матрицеA в качестве элементов а., будем использовать структуру {in., out.}, где in. - номер входного пара-

метра j-го звена, а out. - номер выходного параметра i-го звена, если существует передача данных, и {0, 0}, если нет. Полученную матрицу обозначим A*, а обращаться к параметрам in. и out. будем при помощи символов (at и (at )2 соответственно. Иначе говоря, мы представляем выходные параметры ПК как задачи, которые могут получить один параметр, но ничего не передают, а входные параметры ПК наоборот передают, но не получают.

Предлагается реализовать следующую процедуру оптимизации расписания задач в мультиверсионной системе путем пошаговой коррекции компонент ВВР. Для этого следует ввести еще один вектор, состоящий из I компонент - вектор реализации (ВР). Компонента кЦ вектора реализации представляет собой время, необходимое на выполнение задачи i средствами k-й версии программного модуля j.

Программные модули назначаются в соответствии со следующими правилами [7]:

1. Реализуемость (выполнимость) прикладного процесса.

2. Коррекция компонент ВВР в ответ на нарушение условия реализуемости.

Кроме учета ограничений стоимостного и временного характера при проектировании оптимального состава ПО следует принимать во внимание ограничения на ресурсы. В общем случае используется предположение о том, что задача использует ресурсы всех необходимых видов на протяжении всего ее выполнения. В работе рассматриваются два вида ресурсов - активные и пассивные. Ресурсы называют активными, если они обладают вычислительными возможностями (процессор, устройства ввода/вывода), в противном случае ресурсы называют пассивными (файлы, архивы, базы данных). Для выполнения любой задачи требуется не менее одного активного ресурса и любое число (как и их полное отсутствие) пассивных ресурсов. Таким образом, пассивные ресурсы должны использоваться вместе с активными. Некоторые виды ресурсов могут использоваться одновременно несколькими задачами, в то время как другие (например, каналы считывания/записи) можно назначать только одной задаче.

С__ Нач ал

Находим-^-и-wH

І

В п и с ыв ае м-в -ВВР -з агр узку■ модул я-и-данный

Конец!))

Вписываем-в-ВВР-выполнен ия- мо дул яЦ

(К^^^лучило^^

Вписываем-в-ВВР-выгрузку параметров!

Конец|)

Рис. 1. Обобщенная блок-схема алгоритма формирования ВВР-ресурсов

Основываясь на введенных понятиях, строится один из алгоритмов назначения модулей.

1. Назначаем к-й программный модуль для решения задачи У = 1 класса/

2. Проверка процесса на реализуемость:

- если условие выполняется - переход к п. 4;

- если условие не выполняется - переход к п. 3.

3. Коррекция вектора временной развертки:

- если условия выполняются - продолжаем далее по ходу алгоритма;

- если условия не выполняются - переходим к п. 1.

4. Проверка ограничений на число каналов чтения/ записи:

- если условия выполняются - переход к п. 5;

- если условия не выполняются - переход к п. 1.

5. Увеличиваем У: (У = У + 1) и назначаем к-й программный модуль для решения задачи У класса у.

- если і + 1 < I - переход к п. 2;

- если і + 1 > I - переход к п. 6.

6. Вычисление длительности вычислительного процесса для измененного способа назначения модулей.

Рассматривая в рамках данной процедуры методы оптимизации версионного состава по критерию надежности ПК [7], следует отметить, что описанный выше алгоритм с точки зрения программиста является нереализуемым. Во-первых, символом к. в работе обозначается номер версии в наборе для модуля у, а не номер модуля, а во-вторых, в алгоритме изменяется только параметр і, а параметр к. остается неизвестным.

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

С

Начало

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

±

I

к— ^^Конец~) к— ^^Конец~)

к = п,.. 1

к= 1 .. п.

Рис. 2. Блок-схемы алгоритма нахождения 1 и 1

Задачи

Выходные параметры ПК

к

£-

СО

и Я Я £

К и

3 з по й Ен ¡*! & й Й

г 1

2

ь т

Г -т'г?+1 ІУ,+2

ЮкШ*

1 2 Ш 1ЧІ-+1 ЛГ,+2

{¡И;, Ои^} {іп% оиіі\ {ЇШ 0и&} {1,^}/{0,0} {1,о^}/{0,О} {1,о^}/{0,О}

{зи;, ои£г| {їУІ2 ОІІ*2\ {іпм оиі2\ 11,ои^}/{0,0}

{ІПІ, {і»2 яиЫ\ {зим иои(м}/<0,0} {1,оиЫ/{0,0} }1,оыЫ/{0,0}

о р ■ 1 "■ч к {їиа1}/{0,0} {їИльі}/{0,0} {0,0} {0,0} {0,0}

ІЇИАІ 1/10,0} {0,0} {0,0} {0,0}

{їиаПП0,0} {глльіИ 0,0} {0,0} {0,0} {0,0}

Рис. 3. Структура матрицы связности задач ПК 73

бора версий напрямую зависит время выполнения задачи.

Таким образом, становится ясным, что основная цель дальнейших исследований - показать возможность и эффективность использования алгоритма формирования ВВР ресурсов при синтезе оптимального состава муль-тиверсионного ПО.

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

Библиографический список

1. Майерс, Г Надежность программного обеспечения / Г Майерс ; пер. с англ. Ю. Ю. Галимова / под ред. В. Ш. Кауфмана. М. : Мир, 1980.

2. Kovalev, I. System of Multi-Version Development of Spacecrafts Control Software / I. Kovalev. Pro Universitate Verlag Sinzheim, 2001.

3. Avizienis, A. On the Implementation of N-Version Programming for Software Fault Tolerance During Execution / A. Avizienis, L. Chen // Proceedings of the IEEE COMPSAC’77. 1977. P. 149-155.

4. Randell, B. The Evolution of the Recovery Block Concept / B. Randell, J. Xu // Software Fault Tolerance ; ed. by M. R. Lyu. Wiley, 1995.

5. Kovalev, I. Deriving the optimal Structure of N-Version Software under Resource Requirements and Cost/Timing Constraints / I. Kovalev, K.-E. Grosspietsch // Proceedings of Euromicro’2000. Maastricht, 2000. P. 200-207.

6. Kovalev, I. Optimization models for reliability of telecommunication software systems / I. Kovalev, A. Popov, Ju. Shipovalov // Advances in Modeling & Analysis. Series B. 2000. Vol. 43, №> 3-4. P. 41-46.

7. Ковалев, И. В. Мультиверсионный метод повышения программной надежности информационно-телекоммуникационных технологий в корпоративных структурах / И. В. Ковалев, Р В. Юнусов // Телекоммуникации и информатизация образования. 2003. N° 2 (15). С. 50-55.

I. A. Kapchinsky, P. V Kovalev, A. N. Laykov, S. N. Gritsenko

ON MULTIVERSION SOFTWARE FORMATION CONSIDERING THE RESOURCE CONSTRAINTS

The multiversion programming methodology which guarantees that mistakes of one software versions will not lead to infringement ofthe control process by complex objects where rigid requirements for reliability and autonomy of functioning are typical.

Keywords: optimization, reliability, multiversion programming.

УДК 621.393.3

В. Б. Малинкин, Е. В. Кулясов, Е. В. Малинкин, И. И. Павлов

АСИММЕТРИЧНЫЙ ИНВАРИАНТНЫЙ ЭХО-КОМПЕНСАТОР ВТОРОГО ПОРЯДКА БЕЗ ЗАЩИТНОГО ВРЕМЕННОГО ИНТЕРВАЛА И ЕГО ХАРАКТЕРИСТИКИ

Синтезирована структура инвариантного эхо-компенсатора второго порядка без защитного временного интервала. Приведены элементы управления подобным эхо-компенсатором и расчет его основных технических характеристик.

Ключевые слова: инвариантный, эхо-компенсатор, асимметричный, мощность собственных шумов.

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

ная медным кабелем. саторов состоит в использовании инвариантов. Так, в ра-

Существующие высокоскоростные технологии досту- ботах [1; 2] приведены структуры инвариантных эхо-ком -па используют в оборудовании xDSL-адаптивные эхо-ком- пенсаторов с защитным и временным интервалом и без пенсаторы. Принцип их работы основан на моделирова- него. Основным отличием инвариантных эхо-компенса-

i Надоели баннеры? Вы всегда можете отключить рекламу.