Использование расписаний при моделировании семантики управляющих алгоритмов реального времени

УДК 681.51:629.78

А.А. Тюгашев, А.Ю. Богатов, А.В. Шулындин

ИСПОЛЬЗОВАНИЕ РАСПИСАНИЙ ПРИ МОДЕЛИРОВАНИИ СЕМАНТИКИ УПРАВЛЯЮЩИХ АЛГОРИТМОВ РЕАЛЬНОГО ВРЕМЕНИ

Ключевые слова: управляющий алгоритм реального времени, космический аппарат, семантика программ, верификация, спецификация, синтез программ

Аннотация

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

Annotation

The original semantic model for the real-time control algorithms is being proposed in the article. The model allows defining time-related properties of the control program as well as properties connected with control logic. This approach opens way to formal specification, verification and synthesis of the real-time spacecraft’s software using special program toolset.

1. ВВЕДЕНИЕ

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

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

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

виде формул темпоральной логики требований к программной системе наиболее часто применяется метод проверки моделей - model checking [3, 4]. При этом для моделирования программы используется модель Крипке. Среди других, достаточно активно применяемых моделей автоматизированных систем управления, можно назвать такие, как сети Петри, а также формализм Message Sequence Chart.

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

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

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

Отметим, что системы реального времени можно разделить на два больших класса: системы, управляемые событиями, и системы, управляемые временем. Условно можно сказать, что для управляемых событиями систем не имеет первостепенного значения момент возникновения события, подлежащего обработке

[5]. Настоящая работа посвящена вопросам моделирования именно систем управления реального времени второго рода.

2. РАСПИСАНИЕ КАК МОДЕЛЬ СЕМАНТИКИ УПРАВЛЯЮЩЕГО АЛГОРИТМА РЕАЛЬНОГО ВРЕМЕНИ

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

При этом необходимо принять во внимание, что многие инициируемые УА действия осуществляются не мгновенно (как, например, выдача команды включения какого-то прибора), а в течение определенного промежутка времени, определяемого физическим смыслом функционирования управляемого объекта. Так, это может быть время, требуемое на прогрев оборудования, или необходимое время работы реактивного двигателя для придания космическому аппарату требуемой скорости. Тогда каждому действию f может быть сопоставлено (в общем случае несколько) моментов времени его начала в рамках выполнения УА РВ -ti, а также длительность t

Можно сказать, что семантической моделью УА РВ является расписание S = { < f, tt, ti > }, i=l,N, где N - общее количество выполняемых управляющим алгоритмом действий.

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

(расписания), а предусматривать целый ряд вариантов возможного развития событий (например, нормальное функционирование, нештатные ситуации, переключение на резервное оборудование, и т.д.) [5]. В соответствии с этим семантика УА РВ может быть определена как реализация плана управления (целевого расписания, или, выражаясь терминами, принятыми при управлении космическими аппаратами, циклограммы) при всех учитываемых вариантах развитии ситуации, на всем промежутке планирования. Можно сказать, что управляющий алгоритм должен обеспечить в соответствии с планом выдачу в требуемые моменты времени управляющих воздействий Y(ti) с учетом предыстории и текущего состояния объекта управления и внешней среды, отражаемых набором признаков (логических условий). Примерами логических условий, влияющих на работу алгоритма, могут служить нахождение текущих значений контролируемых датчиками параметров некоторого физического процесса в допустимых границах, или значение логической переменной в программной памяти.

Будем считать, что УА РВ строится на некотором базисе действий (функциональных задач) f, i=l,N, обладающих длительностью t, и логических условий 0j, j=l, M. Тогда семантика УА РВ может быть определена как набор кортежей (четверок) следующего вида:

УА РВ = { < fi, ti, t, \> }, 1=1N,

где f - функциональная задача (действие); tt - момент начала выполнения действия (целое число); Т - длительность действия (целое неотрицательное число); 1 - логический вектор, включающий набор значений логических условий, допускающих исполнение данной функциональной задачи (ФЗ) на заданном отрезке времени. Например, логический вектор (а=Л, а2=Н, а3=И, а4=Л, а5=Н) означает, что в УА РВ фигурирует всего пять логических условий, причем данный вектор обуславливает выполнение некоторой функциональной задачи ложностью условий а и a4, истинностью условия а3, и не зависит от выполнения или невыполнения условий а2 и а5 (т.е. фактически логический вектор является аналогом конъюнкта в ДНФ). Заметим, что поскольку описание выполнения некоторой ФЗ в одно и то же время может встретиться в модели несколько раз с разными логическими векторами (конъюнктами), данный подход позволяет выразить любые логические функции от логических условий, фигурирующих в алгоритме, т.е. с этой точки зрения является функционально полным.

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

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

Пример. Фрагмент семантики УА РВ может выглядеть следующим образом:

< {fj, 0, 100, (а=Л, а2=Л,)}, f 420, 70, (аі=И, а2=Л)}, fs, 210, 310, (аі=Л, а2=Л)}, f* 0, 210, (а1=И, а2=И)}, f5, 100, 390, (а1=Л, а2=Л)} >.

Сравним данное представление с традиционными моделями, использующими концепцию состояний. Для представленного примера можно построить несколько подобного рода моделей, в частности, таймированных автоматов (timed automata), с различными вариантами переходов между состояниями. Однако подобное построение является не вполне тривиальным, требующим известной усидчивости и кропотливости для правильного учета переходов между состояниями, принимая во внимание наборы логических условий. В любом случае в построенной модели получается как минимум 10 состояний, соответствующих включениям или отключениям соответствующих функциональных задач. При этом приходится «додумывать» в деталях картину связей между отдельными состояниями. В отличие от этого, основывающаяся на расписании модель включает всего пять кортежей. Несмотря на это, модель позволяет давать ответы на вопросы типа: «Завершается ли выполнение функциональной задачи f1 до начала выполнения функциональной задачи f2?»,

«одновременно ли начинается выполнение функциональных задач f и f5?», «Возможно ли при какой-то комбинации логических условий наложение выполнения функциональных задач f5 и f во времени?», «Заканчивается ли выполнение функциональной задачи f к моменту времени t=500?», «Какое количество функциональных задач выполняется алгоритмом в момент времени t=J20 при данном стечении обстоятельств (выполнении логических условий)?», и т.д. Подобные вопросы часто возникают при проведении верификации важнейших свойств управляющих алгоритмов реального времени, связанных с синхронизацией протекающих процессов, согласованием их с точки зрения логики управления, расходованием ресурсов вычислительной системы.

Заметим, что в модели не задается явным образом передача управления от одной функциональной задачи к другой. Это позволяет реализовывать одну и ту же семантику (план управления) программами с различными управляющими графами, (аналогом управляющего графа для программы реального времени является логико-временная схема [6,7]), что открывает возможность проведения оптимизирующих преобразований управляющих программ, эквивалентных с точки зрения предложенной модельной семантики [7]. Ситуация аналогична той, которая возникает в случае вычислительных алгоритмов, когда могут быть написаны несколько вариантов программы, осуществляющей подсчет суммы нечетных элементов

массива. Соответственно, предлагаемую модель уместно рассматривать именно как семантическую. Можно также сказать, что семантические модели, основанные на концепции состояний, используют представление алгоритма на «микроуровне», тогда как предложенная модель - на «макроуровне».

Предложенная модель удобна и тем, что допускает весьма наглядную графическую интерпретацию в виде временной диаграммы (диаграммы Ганта, циклограммы). Логическая обусловленность выполнения ФЗ на заданном временном интервале может отображаться при этом, например, цветом, а конкретное содержание логического вектора - поясняющим текстом, отображаемым над соответствующим ФЗ отрезком. Также в случае необходимости может быть подготовлена отдельная циклограмма для каждого возможного варианта исполнения управляющего алгоритма (стечения событий). Модель семантики УА РВ была применена на практике при построении системы автоматизации проектирования и верификации бортовых программ управления для космических аппаратов ГРАФКОНТ/ГЕОЗ [6]. Весьма несложен при этом алгоритм обратного инжиниринга (reverse engineering) бортовых программ управления, позволяющий по имеющейся программе построить ее семантику в виде расписания. Это, в свою очередь, позволяет провести верификацию выполнения временных ограничений и требований необходимой синхронизации процессов, на-

кладываемых на управляющий алгоритм, как автоматически, так и с участием человека путем использования соответствующих инструментов визуализации. Для описания требуемых свойств, в том числе - ключевых свойств синхронизации протекающих процессов по времени и их согласования с точки зрения логики управления, в системе ГРАФКОНТ допускается использовать язык специально разработанного исчисления УА РВ [7,8,9], содержащий формулы, в которых применяются специальные символы для обозначения временных и логических связок. Например, запись fl ^ f2 означает, что выполнение функциональных задач fl и f2 связано непосредственным следованием во времени, fl СН f2 - что они должны начаться одновременно, (~a3)=> f7 - что выполнение ФЗ f7 обуславливается ложностью условия a3. На этой основе может быть решена задача формальной спецификации требований к системам управления реального времени.

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

ких языков программирования, как Лисп и Пролог.

3. ЗАКЛЮЧЕНИЕ

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

Модель семантики УА РВ была использована при создании технологии автоматизации проектирования и верификации бортового программного обеспечения (БПО) космических аппаратов. Ее применение совместно с языком и средствами логического исчисления УА РВ позволяет осуществлять формальную спецификацию и верификацию систем реального времени.

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

1. Hoare C.A.R. Consistent and complementary formal theories semantics of programming languages. Acta Informatica 3, - P. 135-153.

2. Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. - Springer-Verlag, New York, 1995.

3. Верификация моделей программ: Model

Checking Пер. с англ./Под ред. Р. Смелянского.-М.: МЦНМО, 2002.

4. E. M. Clarke, E.A. Emerson, and A.P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications // V. 8, №2, p.244-263.

5. Д.И.Козлов, Г.П. Аншаков, Я.А. Мостовой, А.В. Соллогуб. Управление космическими аппаратами зондирования Земли: Компьютерные технологии. - М.: Машиностроение,1998.

6. A.A. Tyugashev. Integrated Environment For Designing Real-Time Control Algorithms // Journal of Computer and Systems Sciences International. - 2006. Т. 45. № 2. С. 287-300.

7. Тюгашев А.А. Автоматизация спецификации, верификации и синтеза управляющих программ реального времени с применением логического и алгебраического подходов. // Мехатроника, автоматизация, управление. - 2007. № 7. С.46-51

8. Тюгашев А.А. Алгебраические модели управляющих алгоритмов и программ реального времени для космических аппаратов // Вестник Самарского государственного технического университета. Серия: Физико-математические науки. - 2005. № 38. С. 19-25.

9. Тюгашёв А.А. Автоматизированная спецификация, верификация и синтез управляющих программ на основе логического и алгебраического подходов. // Вестник Самарского государственного аэрокосмического университета им. академика С.П. Королёва. 2007. № 1. С. 247-252.