Научная статья на тему 'Уравнения динамики функционирования модели системы, представленной на языке SML'

Уравнения динамики функционирования модели системы, представленной на языке SML Текст научной статьи по специальности «Математика»

CC BY
170
37
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
модель системы / параметры модели / параметры состояния модели / рекуррентные уравнения / функции переходов модулей / расчётные траектории / system model / model parameters / parameters of model state / recurrence equation / functions of modules transitions / estimated trajectory

Аннотация научной статьи по математике, автор научной работы — Погребной Владимир Кириллович, Погребной Дмитрий Владимирович, Погребной Андрей Владимирович

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

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

Похожие темы научных работ по математике , автор научной работы — Погребной Владимир Кириллович, Погребной Дмитрий Владимирович, Погребной Андрей Владимирович

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

The parameters of the model and its state have been introduced for the dynamic model of real time distributed system introduced in SML language in the form of data flow graph. The recurrence equations describing in matrix form the dynamic of model functioning in discrete time were proposed. The functions of modules transition from one state to another were developed. The obtained results allow constructing in static the calculated paths of the model state change, analyzing them and optimizing model dynamic characteristics.

Текст научной работы на тему «Уравнения динамики функционирования модели системы, представленной на языке SML»

УДК 004.94

УРАВНЕНИЯ ДИНАМИКИ ФУНКЦИОНИРОВАНИЯ МОДЕЛИ СИСТЕМЫ, ПРЕДСТАВЛЕННОЙ НА ЯЗЫКЕ SML

В.К. Погребной, Д.В. Погребной, Ан.В. Погребной

Томский политехнический университет E-mail: [email protected]

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

Ключевые слова:

Модель системы, параметры модели, параметры состояния модели, рекуррентные уравнения, функции переходов модулей, расчётные траектории.

Key words:

System model, model parameters, parameters of model state, recurrence equation, functions of modules transitions, estimated trajectory.

Введение

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

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

Параметры модели системы

Рассматривается разомкнутая модель системы, которая представлена на визуальном уровне языка SML в форме графа потока данных (ГПД). На модели отображены условия динамики функционирования системы, т. е. определены условия поступления входных данных, условия обновления выходных данных, определены процессы, распределены модули и данные по станциям и магистралям сети вычислительной системы, определены приоритеты запуска модулей, заданы времена выполнения модулей и ограничения на времена выполнения процессов. Для перечисленных параметров введём обозначения и представим их в матричной форме.

Принадлежность модулей к процессам представим матрицей КМР=||ЛМРр||. Элемент вМРр=1, если у-й модуль относится к процессу р, ЕМРр=0, в противном случае.

Вершины запуска процессов представим вектором VZP={VZPp}. Элемент ¥1Рр равен номеру вершины, запускающей процесс р. Для каждой из этих вершин в ГПД указываются условия поступления: Ц-циклическое, В-вероятностное, Д-детермини-рованное, У-условное. Появление состояния в данных вершинах воспринимается процессом как требование на обработку за ограниченный интервал времени, который определяется условием обновления выходных данных, получаемых по завершении выполнения процесса.

Интервалы времени, в которых должны выполняться процессы, представим вектором ТР={ТРр}. Величина ТРр задаётся в виде целого числа тактов дискретного времени моделирования. Каждый модуль, принадлежащий процессу р, должен быть выполнен в интервале времени ТРр. Информацию по интервалам времени для выполнения модулей можно представить вектором ТМР={ТМРу},

TMP=RMPxTP. Элемент TMP. означает, что после запуска процесса p в k-м такте, моменты начала и окончания выполнения j-го модуля должны находиться в интервале времени от к до k+ TMP.

Распределение модулей по станциям и связанные с этим передачи данных между станциями в сети поясним на примере фрагмента ГПД, приведённого на рисунке. ГПД содержит 8 модулей {т}},_/=1,2,...,8 и 12 данных {4}, /=1,2,...,12. Модули объединены в 4 процесса (3 циклических и 1 вероятностный). На рисунке процессы выделены пунктирными линиями. Сплошными линиями показаны части ГПД, распределённые на станции С1 и С2. Модули т7 и т8, выполняющие функции передачи данных в сети между станциями С1 и С2, распределены на магистраль М1. Если С1 и С2 подключены к разным магистралям, то указывается распределение модулей передачи данных по магистралям сети. Заметим, что модули (т7,т8) и данные (410,411) реализуют передачу данных по дугам (т1,42) и (44,т5) исходного ГПД и являются скрытыми от пользователя [2]. На рисунке они показаны в явном виде, т. к. время выполнения модулей т7 и т8, определяемое объёмами передаваемых данных 4 и 4, должно быть учтено в уравнениях динамики. Таким образом, магистрали сети наряду со станциями рассматриваются как ресурсы для выполнения модулей передачи данных.

Распределение модулей по ресурсам вычислительной системы (станциям и магистралям) представим матрицей КМК=||ЛМЛ}г||. Элемент ЛМЛ}г=1, если у-й модуль распределён на г-й ресурс, ВМЯГг=0, в противном случае.

Приоритетность среди модулей, распределённых на один ресурс, представим вектором я={щ}. Элемент щ соответствует значению абсолютного приоритетау-го модуля и учитывается при его запуске. Если для передачи данного последовательно используется несколько магистралей, то приоритеты соответствующих модулей должны быть согласованы.

Времена выполнения модулей зададим вектором ТМ={ТМ}}. Элемент ТМ} равен целому числу тактов дискретного времени моделирования, кото-

рое отводится процессору (магистрали) для выполнения у-го модуля.

Вершины запуска модулей представим вектором УЪМ={У1М}}. Элемент У1М} соответствует номеру вершины 4, выбранной для запуска у-го модуля. На рисунке вершины запуска модулей, к ним относятся и вершины запуска процессов, выделены жирными линиями. Выбор вершин запуска производится разработчиком проекта исходя из условий поступления, функционального назначения входов модуля, приоритетов, формирования процессов.

Приведём перечисленные выше параметры для рассматриваемого примера:

р= 1 2 3 4

j= 1 1 j = 1 10

2 1 2 15

3 1 3 15

4 1 4 4

5 1 Р= 1 8 Р= 1 10 5 4

6 1 2 12 2 15 6 10

RMP= 7 1 VZP= 3 1 TP= 3 10 TMP= 7 10

8 1 ; 4 9 ; 4 4 ; 8 15

r= 1 2 3

j= 1 1 j= 1 1 j= 1 5 j= 1 1

2 1 2 1 2 6 2 12

3 1 3 1 3 5 3 4

4 1 4 2 4 1 4 9

RMR= 5 1 Ж = 5 2 TM= 5 2 VZM= 5 5

6 1 6 1 6 3 6 8

7 1 7 1 7 1 7 10

8 1 ; 8 1 ; 8 2 ; 8 4

C с2 m1

При получении уравнений динамики потребуется информация о выходах модулей в ГПД. Эту информацию представим матрицей выходов модулей А=|Щ. Элемент А}=1, если выходное данное 4 формируется модулем т}, А}=0, в противном случае. Транспонированная матрица АТ для рассматриваемого примера имеет вид:

i= 1 2 3 4 5 6 7 8 9 10 11 12

j= 1 1 1

2 1

3 1

4 1

AT= 5 1

6 1

7 1

8 1

Столбцы 1, 8, 9 в матрице АТ являются нулевыми, т. к. рассматривается разомкнутая модель, в которой отсутствуют модули, формирующие выходы 4, 4, 4 в зависимости от входов 46, 47.

Параметры состояния модели

Для анализа динамики функционирования модели системы важно знать состояния модулей и данных в каждом к-м такте дискретного времени моделирования. Исходя из того, что все задержки

времени, связанные с передачами данных в сети, переложены на специальные модули (в примере на рисунке - это модули т7 и т8), состояния модели Я(к) в к-й такт дискретного времени будем определять через состояния модулей ЯДк), т. е. 8(к)=у)}, у=1,2,...,т.

Согласно [1] модуль может пребывать в одном из четырёх состояний:

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

¡3- состояние ожидания свободного ресурса после прерывания выполнения;

5 - состояние выполнения модуля.

Таким образом, состояние Я(к) можно представить матрицей 8(к)=||^(к)||. Элемент ^(к)=1, если у-й модуль в к-м такте пребывает в з-м состоянии, т. е. в одном из состояний - о, а, 3, 5, ^(к)=0, в противном случае.

Столбец Я/к) матрицы Я(к) будем именовать вектором з-го состояния модулей в к-м такте. Тогда состояние модели Я(к) можно представить совокупностью векторов Я/к), т. е. 8(к)={8а(к),Ба(к), Яд(к),Я5(к)}. Для примера на рисунке транспонированная матрица Б{к)Т для некоторого к-го такта может иметь вид:

j= 1 2 3 4 5 6 7 8

s=rn 1 1 1

а 1

s^)t= ß 1

ö 1 1 1

Состояние ресурсов (станций и магистралей) представим вектором 8Щк)={ЗЯг(к)}. Элемент ЗЯг(к)=1, если г-й ресурс свободен, £Д.(к)=0, в противном случае.

Для реализации условий прерывания вводится вектор приоритетов выполняемых модулей щ*(к)={щ*(к)}. Элемент щ.*(к) равен приоритету щ модуля ту, выполняемого на г-м ресурсе в к-м такте.

Моменты запуска модулей фиксируются вектором 1н(к)={/н(к)}. Элемент /н(к)=1, если у-й модуль начал выполнение в к-м такте, 1н(к)=0, в противном случае. Аналогично вводится вектор 1к(к)={гк(к)}, который фиксирует окончания выполнения модулей. Элемент 4/к)=1, если выполнение у-го модуля заканчивается в к-ом такте, /к(к)=0, в противном случае. Заметим, что в интервале от /н(кн) до 4/кк) могут происходить прерывания, т. е. в тактах кн и кк фиксируются моменты начала выполнения модуля и его полного завершения.

Динамику изменения границ интервалов, в которых должны выполняться модули, зададим векторами 1н*(к)={/*н(к)} и 1к*(к)={/*к(к)}. Здесь элементы /*н(к) и Гк(к) равны номерам тактов начала и конца текущего интервала для выполнения у-го модуля. При этом f1,j(k)=fцj(k)+TMP-1, а величина (у(к) равна номеру такта запуска соответствующего процесса.

Динамику изменения времени на завершение выполнения модулей представим вектором T(k)={ Tj (k)}. Элемент T (k) равен числу тактов, которые необходимы j-му модулю для завершения работы. Величина T(k) изменяется от TMj до 0.

Моменты запуска процессов представим вектором ZP(k)={ZPp(k)}. Элемент ZPp(k)=1, если в k-м такте произошёл запуск p-го процесса, ZPp(k)=0, в противном случае. Запуск процесса означает, что в соответствующей вершине вектора VZP сформировано состояние с требованием на обработку. Для примера на рисунке в вершинах d8, d1, d9 в случае замкнутой модели такие требования формируют модули-имитаторы агрегатов объекта управления, а в вершине d12 скрытый от пользователя специальный модуль-таймер с нулевым временем выполнения.

В случае разомкнутой модели состояния векторов ZP(k) генерируются специальной программой и оформляются в виде ленты запуска процессов LZP. Длина ленты задаётся последовательностью тактов k=1,2,...,N, на которой будет строиться расчётная траектория функционирования моделей системы.

Уравнения смены состояний модели

Рассмотрим возможные переходы модуля из одного состояния в другое. Из состояния о (пассивное) возможен переход в состояние a (ожидание), если ресурс занят, или в состояние ö (выполнение), если ресурс свободен. Совокупность модулей, перешедших в k-м такте из состояния о в состояние а представим вектором Soa(k)={Soaj(k)}, и из состояния со в ö- вектором Soö(k)={Soöj(k)}.

Из состояния а и из состояния ß (ожидание по прерыванию) модули могут перейти только в состояние ö. Соответствующие переходы, совершённые в k-м такте представим векторами SJk)={Sjk)} и Sßö(k)={Sßö(k)}.

Состояние ö в k-м такте может быть прервано, тогда имеет место переход модуля из ö в ß, либо он может перейти в состояние о, если закончилось выполнение модуля. Этим переходам соответствуют векторы Söß(k)={Söf(k)} и Söffl(k)={Sög(k)}.

Элементы векторов SJk), SJk), Saö(k), Sßö(k), Söß(k), Söo(k) равны 1, если соответствующий переход произошёл в k-м такте, и равны 0, если этого не случилось. Переход осуществляется мгновенно и соответствует началу k-го такта, т. е. принимается, что при переходе в k-м такте, например, в состояние Ö, модуль в этом такте выполняется. Аналогично, если модуль завершает работу в (k-^-м такте, то считается, что весь этот такт он выполнялся.

Динамику смены состояний векторов {So(k), Sa(k), Sß(k), Sö(k)}, определяющих состояние модели, выразим через векторы переходов и представим в виде системы рекуррентных уравнений:

So (к) = So (к -1) + Söo (к) - Soa (к) - Soö (к); (1)

Sa (к) = Sa (к-1) + So^) - S^ (к) (2)

взСАт) = 83 (к -1) + 853 (к) - 835 (к); (3)

85 (к) = 85 (к - 1) + 8Ш5 (к) + 8а5 (к) +

+ 835 (к) - 850 (к) - 853 (к). (4)

Использовать уравнения (1)-(4) для построения расчётной траектории динамики функционирования модели системы можно только после получения функций, определяющих векторы переходов. Для получения функций воспользуемся рассмотренными выше параметрами модели и параметрами, описывающими её состояния.

Введём ряд специальных операций над векторами и покажем их на примере векторов А={а;} и в={Ь}. Эти операции будут использованы при выводе функций переходов.

Поэлементное вычитание: А©В=С, операция© выполняется согласно логическому выражению Уг[а,. > Ц ] => (с = ц - Ц ), иначе (с = ц ).

Поэлементное умножение: А0В=С, для всех I выполняется действие а^Ь^е.

Преобразование вектора: ©А=С, операция со выполняется согласно логическому выражению Уг[ц,. > 0] => (с = 1), иначе (с = 0).

Число ненулевых элементов вектора А будем обозначать |А|.

Преобразование вектора: ОА=С, операция© над вектором А выполняется согласно логическому выражению

У/[ц* = тах{ц}] => (с = ц*), иначе (с = 0).

/

Если число элементов а,* больше одного, т. е. |С|>1, то выбирается любой из элементов а/, либо вводятся дополнительные условия выбора одного из элементов так, чтобы |С|=1.

Переход модели из одного состояния в другое в км такте зависит от вектора ZP(k), взятого из ленты ЬХР и совокупности вершин запуска, сформированных модулями, завершившими работу в (к-1)-м такте. Преобразуем вектор ZP(k) в вектор У(к)={^(к)} в соответствии с логическим выражением:

ур[( ггр (к)=1)& (прр = а)] => у (к) = 1),

иначе (у (к) = 0).

Вектор V (к) задаёт совокупность вершин запуска, поступивших в к-м такте с ленты LZP.

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

Все вершины, сформированные модулями, завершившими работу в (к-1)-м такте, представим вектором У"(к)=Ах1к(к-1). Введём также векторы УК и VZ. Вектор УTZ={VTZ}, элемент УТ1=1, если вершина 4 является элементом вектора VZP, ^1=0, в противном случае. Вектор УZ={^}, элемент ^=1, если является вершиной запуска модуля в ГПД, т. е. является элементом вектора VZM, ^=0, в противном случае. Тогда, принимая У"(к)0УК=У""(к), вектор У(к), представляющий все вершины запуска в к-м такте, определяется по выражению:

V (к) = (V' (к) + V” (к) © V ” (к)) 0 VZ.

Сформируем вектор АМ(к)={АМу(к)} согласно логическому выражению:

У г[(у (к) = 1)& (УZMJ = ,■)] => (AMJ (к) = 1), иначе (AMj (к) = 0).

Вектор АМ (к) задаёт все модули - претенденты на запуск, появившиеся в к-м такте. Общую совокупность модулей - претендентов на запуск в к-м такте представим вектором М(к),

М(к) = АМ (к) + 8а (к -1) + 8 3(к -1).

Для каждого г-го ресурса выделим модуль -претендент с наибольшим приоритетом:

щМ(к) = М(к) 0щ; щМг(к) = щМ(к) 0 ИМИ;

щМ* (к) = ©щМ (к).

Значение ненулевого элемента вектора щМДк) обозначим щМ*г(к).

Возможность запуска модуля - претендента при свободном ресурсе определим переменной 4Т(к), а при занятом - переменной &(к):

Уг[|жМ* (к) = 1 & БЯГ(к) = 1] => (Сг(к) = 1), иначе (Сг (к) = 0);

Уг

=> & (к) = 1),

(5)

|щМ, (к )| = 1 & SRr (к) =

= 0& щМ*, (к) > щ*(к -1)

иначе (|г (к) = 0). (6)

Переменная 4(к)=1 означает, что модуль, выполнявшийся в (к-1)-м такте на г-м ресурсе, в к-м такте прерывается, т. е. переходит в состояние 3.

После вычисления согласно (5) переменных ¿Цг(к) можно определить сумму векторов переходов в состояние 5:

(к) + 8а5 (к) + 835 (к)) = X (С (к)х (©щМГ (к))). (7)

г

Вектор переходов Я^к) определяется после вычисления по выражению (6) переменных 4(к):

853 (к) = Х &(к) х (ИМЯг 0 85 (к -1))). (8)

г

Вектор состояния модулей Я5(к) вычисляется после подстановки выражений (7), (8) и вектора переходов 8го(к)=1к(к-1) в уравнение (4):

8, (к) = 8, (к -1) +

+Х (С (к) х ((5щМ, (к)) -1к (к -1) -

г

-X & (к) х (ИМИг 0 85 (к -1))).

г

При известном векторе Я5(к) нетрудно вычислить все другие векторы переходов:

8о5 (к) =

= (85 (к) © 85 (к -1)) © (8а (к -1) + 83 (к -1)); (9)

8оа (к) = (АМ(к)) © 8о5 (к); (10)

8а5 (к) = 85 (к) 0 8а (к-1);

(11)

8 35 (к) = 85 (к) 0 83 (к -1). (12)

Используя выражения (8)—(12), согласно уравнениям (1)-(3), вычисляются векторы состояния модулей Бш(к), Ба(к), ЯДк).

Перед вычислением векторов состояния Я(к+1) при условии, что (к+1)<Д вносятся изменения в параметры состояния модели, соответствующие (к+1)-му такту. По результатам смены состояний модулей устанавливаются значения векторов ЯИ(к+1), щ(к+1), Т(к+1), ^(к+1), ^(к+1), У(к+1), 1к*(к+1). При этом векторы 1н*(к), ^.*(к), задающие границы интервалов выполнения модулей, используются для контроля принадлежности значений ^(к) и ^(к) данным границам. Результаты контроля не препятствуют динамике смены состояний модели согласно уравнениям (1)-(4), но учитываются при построении расчётной траектории, анализе и оптимизации характеристик динамики функционирования модели.

Заключение

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

Уравнения получены для условий, когда запуск процессов происходит с заранее подготовленной ленты. Считать, что лента адекватно имитирует запуск процессов достаточных оснований нет, т. к. она разрабатывается без учёта выходных управляющих воздействий, формирование которых возможно лишь при выполнении замкнутой модели на виртуальной машине моделирования. Несмотря на это, расчётные траектории, получаемые с помощью данных уравнений, содержат полезные сведения для принятия решений по улучшению динамических характеристик модели. Ценность таких решений заключается в том, что улучшение характеристик выполняется до программной реализации модулей и анализа модели с помощью виртуальной машины моделирования.

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

Работа выполнена при проведении НИР, в рамках реализации ФЦП «Научные и научно-педагогические кадры инновационной России» 2009-2013 гг. Госконтракт № П 2396.

СПИСОК ЛИТЕРАТУРЫ

1. Погребной В.К. Определение и анализ области состояний модели системы // Известия Томского политехнического университета. - 2010. - Т. 316. - № 5. - С. 48-54.

2. Погребной В.К. Визуальный уровень представления алгоритмов функционирования распределённой системы реального времени на языке структурного моделирования // Известия

Томского политехнического университета. - 2009. - Т. 314. -№ 5. - С. 140-146.

3. Погребной В.К. О построении активных моделей распределённых систем реального времени // Известия Томского политехнического университета. - 2008. - Т. 312. - № 5. - С. 78-84.

Поступила 01.04.2011 г.

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