Научная статья на тему 'Математическое моделирование управляющих алгоритмов и программ реального времени'

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

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

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

Калентьев А.А., Тюгашев А.А. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ УПРАВЛЯЮЩИХ АЛГОРИТМОВ И ПРОГРАММ РЕАЛЬНОГО ВРЕМЕНИ

Введение

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

Для моделирования подобного рода систем применяются такие подходы, как системы переходов, тай-мированные автоматы, временная логика, алгебра процессов реального времени, и др. [2, 4, 6] .

В настоящей статье описывается специальная математическая модель управляющего алгоритма реального времени (УА РВ), базирующаяся на применении логико-алгебраического подхода. Вводится определение семантики УА РВ, показана возможность конструирования УА РВ путем последовательного применения логических и временных операций к элементам базового множества элементарных функциональных задач (ФЗ), в качестве которых могут рассматриваться как целые программы со сложной внутренней структурой, так и простые операторы языка программирования. Определяются понятия многовариантной и многовходовой моделей управляющего алгоритма, а также логико-временной схемы алгоритма. Кратко описываются возможности основанной на приведенных моделях инструментальной программной системы, которая позволяет с использованием визуального конструктора описывать УА РВ, и автоматически получать его информационные и временные характеристики, а также генерировать управляющую программу, реализующую алгоритм.

Математическая модель управляющего алгоритма реального времени.

При проведении исследования семантики обычного алгоритма (либо программы), то, как правило, она определяется результатом, получаемым по окончании работы алгоритма. Под результатом подразумевается некоторый набор выходных данных, полученных в результате обработки набора исходных данных (ИД). А состояния программы (алгоритма), как начальное и конечное, так и промежуточные, определяются совокупностью значений в имеющейся программной памяти. Например, известна общая формализация понятия программы, исходящая из формулировки так называемых постусловий и предусловий [2]. Данные условия есть часть языка алгоритмических логик, предложенных Флойдом, Хоаром, математиками польской логической школы практически одновременно в конце 1960-х гг., и включающих условия вида: {U} S {B}, (1)

читающиеся следующим образом: " U - условие, относящееся к исходным данным программы S, истинное до ее выполнения, B - условие, относящееся к выходным данным программы S, которое должно быть истинным после ее исполнения".

Данный подход не может быть прямо применен для случая управляющих алгоритмов реального времени, поскольку для них важным условием является осуществление корректного управления (под которым понимается выдача соответствующих управляющих воздействий), на всем промежутке времени функционирования алгоритма. Более того, для данного случая неприменим, без внесения соответствующих поправок, вообще классический подход к алгоритму как к набору действий для получения по завершению его работы определенного результата, т.к. в общем случае алгоритм управления может работать бесконечно, выполняя тем не менее возложенные на него функции. Как говорит А. Пнуели, основоположник использования темпоральной логики в исследовании программ, «Нужно ли понятие внешнего времени, или темпоральности, для рассуждений о программах?.. для последовательных программ темпоральность не является существенной. Это так потому, что сами эти программы имеют «внутренние часы», а именно, само выполнение. Зная метку в программе и значения программных переменных, мы можем точно определить, в каком месте выполнения мы находимся. Поэтому для таких программ простые временные понятия, как «до» и «после» выполнения программного сегмента... адекватны. Но при обращении к программам индетерминистическим, параллельным, в которых выполнение состоит из перемешанных между собой операций из различных процессов, мы должны различать «где» и «когда», и сохранять внешнюю временную шкалу, независимую от выполнения» [6].

Вообще, правильность работы УА РВ может быть определена, как успешная выдача всех управляющих воздействий (выполнение всех целевых задач) во все требуемые моменты времени, или в обозначениях пред- и постусловий:

{U(D0,t0)}YS{B(Dk(t1,t2,..tk),tk)}, (2)

то есть в момент времени начала функционирования УА t0 истинно условие корректного задания исходных данных D0, а к моменту завершения работы tk управляющего алгоритма истинно условие В, означающее успешное формирование всех управляющих воздействий Dk во все заданные моменты времени

t1,t2,...tk на протяжении функционирования системы.

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

Тогда семантика управляющего алгоритма может быть представлена в виде набора четверок:

УА РВ={<^, ti, Xi, li>}, i=1,N , (3)

где fi - функциональная задача (действие), ti - момент начала исполнения действия, Xi - длительность действия, li - логический вектор, обуславливающий действие. Компонентами логического вектора являются логические переменные (ЛП), отражающие текущее состояние параметров внешней среды, а также могущие являться «флагами» или «признаками», отражающими - текущее состояние вычислительного процесса. Предположим, что всего в алгоритме задействовано M логических переменных a.j, j = l,M. В этом случае размерность логического вектора будет равна М: 1±= (cti, аг,П... ctM,) •

Каждому запуску на выполнение функциональной задачи в некоторый момент времени ti сопоставим обуславливающий его логический вектор. Если значение некоторой логической переменной должно влиять на выполнение ФЗ, в соответствующей позиции логического вектора записывается значение 1 (ИСТИНА), либо 0 (ЛОЖЬ), если же значение данной ЛП не влияет на запуск функциональной задачи в момент времени ti, в соответствующей компоненте логического вектора записывается H (НЕВАЖНО). Таким образом, здесь для описания используется трехзначная логика.

В наборе среди четверок объектов задаются относительные смещения времени запуска ФЗ на выполнение, то есть присутствует некоторая базовая величина tyА = min (ti), i=1,N, относительно которой смещениями задаются времена старта всех остальных задач. Ее можно принять за нулевую метку времени, или за некоторую целую константу, и таким образом привести весь алгоритм к абсолютной временной шкале. При этом общая длительность исполнения алгоритма

Семантика УА РВ задает его функционирование на временном интервале от начального момента времени t0, до завершающего tзав - [t0, tзав), причем в общем случае tзав может быть равным бесконечности .

Предполагается синхронный характер работы системы, когда выделяются дискретные моменты времени ^ = 0,1,2 .., то есть в качестве модели времени используется множество натуральных чисел. Единичное приращение по шкале времени соответствует одному «тику» системных часов Л^^п*

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

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

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

Выделим следующие варианты согласования выполнения ФЗ:

Совпадение по началу ^ СН f2, когда ^ = t2.

Совпадение по концу ^ СК f2, когда ^ + Т1 ^2 + Т2.

Непосредственное следование ^ ^ f2, когда ^ + Т1 = t2.

Простое предшествование ^ < f2, когда ^ + Т1 < t2.

Запрет на наложение fl <> f2, когда (tl + Т1 < t2) V (t2 + ^2 < tl).

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

Обуславливание исполнения некоторой ФЗ каким-либо предикатом будем записывать следующим образом:

(аО =>

что означает выполнение ^ только в том случае, если логическая переменная а1 принимает значение ИСТИНА (данная запись эквивалентна записи а1 ^ ^ исчисления высказываний). Возможна также «полная» запись, соответствующая условному оператору языков программирования:

(аО => ^ + (^аО => f2,

и читающаяся как исполнение ФЗ ^ в случае ложности а1, и исполнение f2 в противном случае. Данный подход может быть формализован, с помощью модифицированного исчисления УА РВ (впервые исчисление как модель формального представления УА РВ была предложена А.А. Калентьевым, им были введены символы СН, СК и ^ как знаки для записи операций над управляющими алгоритмами).

Дополним определение нашей формальной теории. Она будет представлять собой эквациональную спецификацию [8], то есть в ней присутствует эквивалентность (равенство), отражаемая символом =, что позволяет записывать уравнения.

Два УА РВ являются семантически эквивалентными, если они включают одни и те же функциональные задачи в те же моменты времени при одних и тех же условиях.

Алфавит образован символами f с численными индексами для обозначения ФЗ, символами а с численными индексами для обозначения логических переменных, а также включает символы логического отрицания —, символ логического следствия (импликации) =>, символ логического выбора +, символы временных соотношений СН, СК, ^, <, <>, символ эквивалентности =, и круглые скобки. Символы t с численными индексами используются в метатеории для обозначения составных термов.

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

Множество термов определяется индуктивно:

Символ функциональной задачи есть терм.

Если ^ и t2 - термы, а - логическая переменная, то

(Щ, ^ СН t2, ^ СК t2, ^^2, ^^2, ^<^2, а => ^, ^а => ^ , (а) => (^а) => t2- тоже

термы.

Аксиомы модифицированного исчисления УА РВ включают в себя нижеследующие схемы аксиом (^, t2 -термы, а - логическая переменная).

Аксиома равенства АО. ^ ^

Аксиомы идемпотентности А1. ^ СН ^

А2. ^ СК ^

Аксиомы коммутативности А3. ^ СН 12 = 12 СН ^

А4. tl СК 12 = 12 СК tl

А5. (а) => (^а) => t2 = (^а) => t2+ (а) => ^

Аксиомы ассоциативности

А6 . СН t2 ) СН tз = ^ СН (t2 СН tз)

А 7 . СК 12 ) СК t = tl СК (t2 СК tз)

А8 . (^ - 12 ) - 13 = tl - (t 2 - t з)

А9. (tl - t2) - tз = tl - (t2 - tз)

Аксиомы дистрибутивности

А10 . (tl - t2 ) СН (tl - tз) = и - (t2 СН tз)

А11 • (^ - 12 ) СК (tз - 12) = (tl СК tз) - 12

А12 . (а = > tl - 12) + (—а) => (tl - tз) = и - ((а) => 12 + (——а) => tз)

А12 . (а = > - 12) + (—а) => ^з - 12) = ((а) => tl + (—а) => tз) - t2

А14 (а = > СН 12 ) + (—а) => (^ СН tз) = tl СН ((а) => t2 + (——а) => t з)

А15 (а = > СН 12 ) + (—а) => ^з СН t2) = ((а) => ^ + (—а) => tз) СН 12

А16 (а = > СК 12 ) + (—а) => (tl СК tз) = ^ СК ((а) => 12 + (——а) => t з)

А17 (а => ( СК 12 ) + (—а) => ^з СК t2) = ((а) => tl + (—а) => tз) СК 12

А18 (а => ( - 12) = ( (а) => tl) - ((а) => t2)

А19 (а => ( СН 12 ) = ((а) => tl) СН ((а) => t2)

А2 0 (а => ( СК 12 ) = ((а) => tl) СК ((а) => t2)

Правила вывода включают следующие:

Если в схемах аксиом присутствует равенство ^= t2, то выводимы также ©(^)=©^2), где © - произвольная подстановка (правило подстановки).

Если выводимы tl= t2 и t2= tз, то выводимо также tl= tз.

Если выводимо ^= t2, то выводимо также t2= tl.

Если выводимы tl < t2 и t2 < tз, то выводимо также tl < tз Если выводимы ^ <> t2 и t2 <> tз, то выводимо также tl <> tз

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

Приведем некоторые примеры интерпретации операций и соотношений формального исчисления УА РВ, на вышеописанной семантике четверок объектов.

Пример 1. Операция СН (совпадение по началу).

Пусть

ti=tmin ti, 20, li>,

<f3, t3=ti+50, i00, 1з> }, две ФЗ в УА, длительность i00

t2 = { <f2, t2=tmin t2, 60, l2> } , одна ФЗ в УА, длительность 60

Тогда t3 = ti СН t2 будет

t3 = { < fif tрез=tmin t3, 20, 11>,

< ^, tрез=tmin t3, 40, 12 >,

< f3, tрез+50, i00, l3> }, три ФЗ в УА, длительность 100.

Пример 2. Операция СК (совпадение по концу).

Пусть

ti = { <fi, ti=tmin ti, 20, 1i>,

<f3, t3=ti+50, i00, l3> },

12 = { <f2, t2 = tmin t2 , 60, l2> } .

Тогда 13 = ti СК 12 будет

13 = { < fi, ti=tmin t3, 20, li>,

< f2, t2= ti+ 90, 60, 12 >,

< f3, t3=ti+50,i00, l3> }. (длительность 50+100=90+60=i50)

Пример 3. Операция => (логическое обуславливание).

Пусть

ti = { <fi, ti=tmin ti, 20, li = (ai=i, a2=H, a 3=0)>,

<f3, t3=ti+50, i00, 13 =(ai=H, a 2=H, a 3=H)> },

Тогда t3 = (^a 2) => ti будет

13 = { < fi, ti=tmin t3, 20, li= (ai=i, a 2=0, a 3=0)>,

<f3, t3=ti+50,i00, 13= (ai=H, a 2=0, a 3=H)> }.

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

Таким образом, можно ввести в рассмотрение алгебраическую систему УА РВ, в которой основным множеством будут являться наборы вышеприведенных четверок объектов, сигнатура будет включать операции СН, СК, ^, и будут присутствовать также отношения временного предшествования и неналожения

< и <>.

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

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

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

Соединенная передачами управления между входами совокупность входов образует граф:

MWM = < W, U >, где (8)

W - множество вершин (входов);

U - множество дуг (передач управления между входами), т.е. бинарное отношение W x W.

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

В случае ациклического, наиболее распространенного, варианта, должно выполняться условие последовательного запуска при передаче управления:

Если существует дуга (Wi, Wj), то tüwi < tcwj, где tüwi - момент включения входа Wi, tüwj - момент включения входа Wj.

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

условий и действий fi), реализующих логику входа.

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

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

W = < LU, Y >, где (9)

LU - множество вершин графа (линейных участков),

Y - множество дуг - передач управления (ветвлений).

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

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

невыполнения логического условия, то есть дерево будет бинарным.

Ясно, что если внутри линейного участка важна последовательность выполнения ФЗ fi и fj, то

ДОЛЖНО ВЫПОЛНЯТЬСЯ ti ^üt-j,

Логические условия, фигурирующие в многовходовой модели, по времени их значимости (актуальности) могут относиться к одному из трех типов: a(t), то есть нас интересует значение логической

переменной в текущий момент времени t, и с течением времени значение a может меняться, a(tü) когда значение переменной может меняться, но нас интересует ее значение в заданный момент времени tü (часто это момент начала исполнения УА), а изменения значения во времени не должны влиять на исполнение ПКФ, и aстат, когда значение логической переменной не претерпевает изменений в процессе исполнения УА.

Очевидно, что подход при интерпретации этих трех типов логических переменных при построении многовходовой модели должен быть разным. Для первого случая - a(t) необходима проверка актуального значения в каждый текущий момент, то есть внутри каждого входа должен полностью при обусловленности некой fi логическим вектором проверяться весь вектор значений логических переменных.

Для случая a(t0) необходимо один раз в начале выполнения УА выяснить, к какому варианту необходимо прибегнуть при исполнении, то есть один раз в момент времени t0 проверить все логические условия, фигурирующие во всех логических векторах, обуславливающих выполнение всех fi, входящих в данный УА.

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

Так, для случаев a(to) и астат можно считать, что от входа к входу логическая обусловленность «наследуется», и образуется цепочка входов, логически обусловленная аналогично логической обусловленности отдельной функциональной задачи fi в модели семантики УА. При этом распределенная во времени цепочка входов является аналогом логической ветви исполнения обычного алгоритма, не выполняющегося в реальном времени.

Заключение

Описанные математические модели поддерживаются технологией визуального конструирования управляющих алгоритмов реального времени и реализующей ее инструментальной программной системой, функционирующей на платформе Windows 95/98/2000/XP и разработанной в основном средствами языка C/C++.

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

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

Таким образом, решается задача автоматического синтеза программы по спецификации ее характеристик.

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

Созданная система позволяет на базе внутренних структур данных, отражающих многовходовую модель УА РВ, решать эти задачи.

ЛИТЕРАТУРА

1. Управление космическими аппаратами зондирования Земли: Компьютерные технологии / Д.И. Коз-

лов, Г.П. Аншаков, Я.А. Мостовой, А.В. Соллогуб. - М.:Машиностроение, 1998.

2. Логика и компьютер. Моделирование рассуждений и проверка правильности программ / А.М. Анисов, П.И. Быстров, В.А. Смирнов и др.-М:Наука, 1990.

3. Калентьев А.А., Тюгашев А.А. Разработка подсистемы синтеза управляющих алгоритмов на базе исчисления УА // Всероссийская научная шклола "Компьютерная алгебра, логика и интеллектное управление. Проблемы анализа стратегической стабильности": Сб. трудов, Иркутск, ИрВЦ СО РАН, 1994.

4. Советов Б.Я., Яковлев С.А. Моделирование систем.-М.:Высш.шк., 2001.

5. Тюгашев А.А. Проблема неоднозначности при порождении логико-временной структуры управляющего алгоритма по многовходовой модели реального времени. // Сб. трудов Третьей международной молодежной школы-семинара БИКАМП-01, СПб, 2001. - С.179

6. Ben-Ari M., Manna, Z., Pnueli A.: The Temporal Logic of Branching Time. Proc. 8th Annual

Symposium on Principles of Programming Languages, 1981, ACM Press, Williamsburg, p. 164-176. Springer-Verlag, 1992.

7. Baeten J.C.M., Bergstra J.A.: Real time Process Algebra. Formal Aspects of Computing, 3,

p.142-188, 1991.

8. Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. -СПб.:БХВ-Петербург, 2003.

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