Научная статья на тему 'Алгоритм решения задачи мультиверсионного формирования программно-информационных технологий'

Алгоритм решения задачи мультиверсионного формирования программно-информационных технологий Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Вайтекунене Е.Л.

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

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

Похожие темы научных работ по математике , автор научной работы — Вайтекунене Е.Л.

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

THE ALGORITHM FOR SOLVING THE PROBLEM OF THE FORMATION OF MULTIVERSION SOFTWARE AND INFORMATION TECHNOLOGY

The article considers the formal procedure for taking into account resource and time constraints in the implementation of the multiversion complex, taking into account the employment of resources, which ensures the reliability of the resource usage of software for any versioned composition.

Текст научной работы на тему «Алгоритм решения задачи мультиверсионного формирования программно-информационных технологий»

УДК 004.442

АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ МУЛЬТИВЕРСИОННОГО ФОРМИРОВАНИЯ ПРОГРАММНО-ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Е. Л. Вайтекунене

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

Е-mail: ies_vel@mail.ru

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

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

THE ALGORITHM FOR SOLVING THE PROBLEM OF THE FORMATION OF MULTIVERSION SOFTWARE AND INFORMATION TECHNOLOGY

E. L. Vaitekunene

Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation

E-mail: ies_vel@mail.ru

The article considers the formal procedure for taking into account resource and time constraints in the implementation of the multiversion complex, taking into account the employment of resources, which ensures the reliability of the resource usage of software for any versioned composition.

Keywords: multiversion programming, optimization.

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

Рассмотрим, каким образом в работе [1] анализируется время исполнения программы и введение ограничений на ресурсы, учитывая, что предлагаемый авторами в [1] алгоритм сложен в реализации и требует больших вычислений. Причем, если временные ограничения задаются полностью, то для ресурсных ограничений анализируется частный случай, мало соответствующий реальности. Также в этой работе предлагается только одна единственная оценка надежности программного комплекса и используется одноуровневая модель построения программного обеспечения (ПО). Еще одним недостатком этой работы является то, что задача решается при заранее известном интервале обслуживания каждой задачи.

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

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

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

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

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

Секция «Информационно-экономические системы»

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

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

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

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

Множество X = {xJ), i = 1, ..., I; j = 1, ..., J; kj = 1,., Kj булевых переменных X k называется вектором конфигурации системы и предлагает возможный вариант назначения версий программных модулей задачам в системе.

Применим следующие обозначения:

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

6) Rj - оцениваемая надёжность отказоустойчивого модуля j как комбинации Kj независимых версий;

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

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

I Xk = "j

, j = 1, ..., J. (2)

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

max

j=1

K

R = П Rj , (3)

С j

где Rj = 1 _ П V1 _ Rig ) " с дополнительными ограничениями

kj -> n

"j ,j= 1, .... J. (4)

я = 1 -П( - яЛ"

к,=1

I ^ -

г] е А1

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

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

При формализации процессов обслуживания задач в системе вводится вектор временной развёртки (ВВР) набора задач

г = {tl,..., г, ^

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

< г, < Vг = 1,..., I,

здесь г г и г г - первый и самый последний моменты времени соответственно, когда может начаться обслуживание задачи г; эти параметры зависят от значений времени при выполнении

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

Дальше рассматривается процесс оптимизации расписания задач в системе путём пошаговой изменением компонент ВВР. Введем ещё один вектор, состоящий из I компонент - вектор реализации (ВР). Компонента Ь к вектора реализации представляет время выполнения задачи 1 программного модуля j средствами к}-й версии.

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

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

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

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

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

10) Назначаем к}-й программный модуль для выполнения задачи 1=1 класса j.

11) Проверка процесса на выполнение:

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

13) иначе - переход к п. 3;

14) Коррекция вектора временной развёртки:

15) если условия выполняются - идем дальше;

16) иначе - переходим к п. 1.

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

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

19) если условия не выполняются -к п. 1.

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

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

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

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

Далее рассматриваются методы оптимизации версионного состава по критерию надежности МПК. Алгоритм, описанный выше, является нереализуемым с точки зрения исполнителя. Во-первых, символом к] в работе обозначается номер версии в наборе для модуля j, а не номер модуля, а во-вторых, в алгоритме изменяется только параметр 1, параметр к) остается неизвестным.

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

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

Секция «Информационно-экономические системыi»

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

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

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

© Вайтекунене Е. Л., 2017

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