УДК 004.416.2
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ КОНТРОЛИРУЕМОГО ВЫПОЛНЕНИЯ
Н.В. Шмырев, к.ф.-м..н. (Научно-исследовательский институт системных исследований РАН
(НИИСИРАН), г. Москва, зктугеифпп^-твк.ги)
Описание сложной информационной системы требует наличия формализма, позволяющего описывать объекты системы и их взаимодействие, унифицировать подходы к вычислениям. В статье представлена модель вычислений, описывающая основные аспекты контролируемого выполнения распределенных ответственных приложений реального времени.
Ключевые слова: контролируемое выполнение, распределенные системы, системы реального времени.
Для описания сложной системы вычислений с разносторонними требованиями необходимо наличие формализма, позволяющего описывать объекты системы и их взаимодействие, унифицировать подходы к вычислениям. Построенная модель вычислений описывает основные аспекты контролируемого выполнения распределенных ответственных приложений реального времени и включает:
- статическую и динамическую верификацию корректности;
- оптимизацию и проверку результатов оптимизации;
- устойчивость к сбоям;
представление вычисления с разных сторон и с различной степенью детализации;
- возможность описания ресурсов.
Предложенная автором модель построена на
основе формального описания устойчивой системы реального времени, включающего восстановление системы после сбоев, временные свойства и планируемость [1]. В качестве модели приложения используется система переходов [2], в качестве общей спецификации - логика действий со временем (TLA - Temporal Logic of Actions) [3].
Сбои моделируются с помощью множества «сбойных» действий F, которые изменяют состояние так же, как и обычные вычисления. Устойчивость к сбоям обеспечивается проведением корректирующих действий. Как показано, доказательство устойчивости к сбоям в такой модели не отличается от доказательства функциональной корректности.
Программы и спецификации описываются в модели TLA как логические формулы, позволяя таким образом устанавливать правила вывода и описывать выполнение без времени, выполнение со временем, сбои и планируемость.
Приведем несколько определений.
Определение 1. Состояние - это отображение набора переменных Var на набор значений Val:
s : Var Val.
Определение 2. Действие - это некоторый предикат над переменными, их значениями, а также их измененными значениями, которые обозначаются штрихом: x'+1<y.
В качестве бесконечных последовательностей действий ст=стх, ст2,." можно рассматривать временные формулы, которые составлены из булевых операторов и операторов линейной временной логики.
Например: [Пф](а) - предикат ср выполняется для любого суффикса а, [0ср](ст) - предикат ср выполняется хотя бы однажды.
Определение 3. Программа - это набор, состоящий из следующих компонент:
- конечное непустое множество v состояний;
- подмножество внутренних состояний x множества v;
- предикат первоначального состояния ©, включающий в себя только переменные из v;
- конечный набор A действий над переменными из v.
Определение 4. Вычисление программы Р=( v, х , <Э, А) - это последовательность состояний ст, такая, что выполняются два условия:
1) ст0 удовлетворяет 0;
2) CTi+i=cjj или найдется такое теА, что ai+i, CTj удовлетворяет т.
Определение 5. Для программы Р=( v, х , 0, А) рассмотрим NP= V т.
теА
Тогда точная спецификация определяется как
Il(P)=©vD[Np] v и описывает набор всех разрешенных состояний программы.
Определение 6. Внешняя спецификация программы задается как Ф(Р)=Э х П(Р) и описывает все возможные последовательности внешних состояний системы.
И наконец, введем определение уточнения программ, позволяющее ввести понятие верификации.
Определение 7. Отношение уточнения P/<=Ph означает, что программа Р/ корректно реализует Ph, то есть отношение Ф(Р/)—><t>(Ph) выполнено для внешних спецификаций.
В работах [1] и [4] описываются дальнейшие расширения предложенных определений и воз-
можности вывода теорем. Например, для описания сбоев вводятся множество действий Р и понятия внешних и внутренних спецификаций, сбойного
вычисления Р(Р,Е')=( V, х , 0, АиГ). устойчивого к сбоям уточнения, и т.д.
Рассмотрим варианты расширения описания для учета необходимых свойств.
Моделирование разных аспектов вычисления
Естественно описывать вычисление несколькими моделями, отражающими различные аспекты приложения, например, модель памяти и модель занимаемой пропускной способности сети, дополняя основную модель вычислений, могут быть различными. Кроме того, набор ограничений и утверждений о приложении может быть достаточно разнородным и задаваться результатами тестирования, выведенными в процессе анализа приложения утверждениями, проверками во время выполнения.
Таким образом, кроме понятия уточнения, необходимо задать более сложное соотношение между различными моделями выполнения, описывающее совместное дополнение программ, сводимое к нужному выполнению.
Определим операцию комбинации программ.
Определение 8. Введем внутреннюю и внешнюю спецификации набора программ Р^
П(РЬР^лвМдП^и! У),
Ф(Р1,...,Рп)=ЭхП(Р1,...,Рп).
Определение 9. Будем говорить, что программа Р является уточнением набора Р15 ..., Р„, если Ф(Р)->Ф(Р!,...,РП).
Таким образом, можно определить отношение частичного порядка на множестве наборов программ и использовать его для построения целого семейства моделей, представляющих выполнение приложения с разной степенью детализации.
Можно определить и другие операции над моделями программ.
Определение 10. Композиция программ Рх и Р2 определяется набором состояний у, х у, . начальным состоянием ©1х©2 и набором действий А^Аг.
Другой операцией, позволяющей абстрагироваться от внешней переменной, является операция сокрытия переменной.
Определение 11. Для программы Р и переменной Уагг х определим программу 1Шех(Р) с помощью набора состояний V и набора внутренних состояний х' = х иУаг.
Моделирование ресурсов
Потребляемые ресурсы, как и время, важны для доказательства корректности работы прило-
жения и для выполнения его миссии. Для описания потребления ресурсов, как и в случае со временем, необходимо ввести внутренние переменные, описывающие ресурс, и дополнить соотношения действий границами использования ресурсов.
Например, время моделируется с помощью временных меток действий. Каждое действие т связывается с нижней временной границей L(t) и верхней U(t). Чтобы считаться успешным, действие должно выполняться по крайней мере L(t) временных интервалов. Действие не должно выполняться реже, чем U(x). Модель может включать в себя более сложные механизмы планирования, например, планирование с временным осво-бождснисм ресурсов.
Определив набор ресурсов ZjeZ, для каждого ресурса и каждого действия отыщем верхнюю и нижнюю границы потребления ресурсов Uj(r) и Lj(r). Для каждого из ресурсов нужно ввести и специальные ограничения, которые описывают их расходование (например для времени):
now=0 е <Э, (1)
□ [now'е (now,ос))]
now, (2)
VteR+,0(now>t). (3)
Для механизма простейшего выделения памяти формулируются более простые условия: □mem(a)>0, mcm'>mcm-llln(x), mcm'<mcm-Lln(x). хотя для сложных механизмов выделения можно учитывать и более точные характеристики, такие как фрагментация памяти.
При работе с ресурсом необходимо расширить определение внутренней и внешней спецификаций соответственно:
RP= V Rj(t), n(P)=©vD[NP] vvD[RP] v,
теА
где Rj - ограничения, накладываемые на использование ресурса.
Более сложные модели использования ресурсов требуют дополнительных построений, поэтому некоторые аспекты, не так часто применяемые в системах реального времени, остались неописанными. Например, представляет интерес описание задачи планирования не только времени, но и совместного планирования ресурсов.
Оптимизация
Возможность учета понятия оптимизации является естественным требованием к формальной модели приложения. Необходимо рассмотреть две проблемы, возникающие при этом: проверка корректности оптимизирующего преобразования и количественное определение результатов оптимизации. Первая проблема может быть решена с помощью введения эталонной модели вычисления Pe, таким образом, корректность оптимизации можно определить как соответствие эталонной модели вычисления PxCzPgAPjCzP,,. То есть для
оценки корректности оптимизации необходимо зафиксировать эталонную модель вычисления.
Чтобы ввести количественные оценки эффективности для последующей оптимизации, необходимо ввести внутренние переменные для оптимизации и задать соотношения, описывающие затраты на каждый переход из состояния су в состояние ctj и действия т-С(т, су, су'). Соответственно изменяется внутренняя спецификация:
СР= V _ С(т, су, СУ'),
теА, ctgv, o'ev
П(Р)=© v D[Np] v vD[Rp] v vD[Cp] v.
Полная модель приложения
Расширяя описание приложения, получим следующую формальную модель.
Определение. Программа описывается такими сущностями:
- программа без времени P( v, x , 0, A);
- набор сбоев F и соответствующая программа со сбоями с условием F(P,F)cP:
- счетчик часов now со свойствами времени (1);
- внутренние состояния, описывающие наличие ресурсов, таких как доступная память;
- функции расхода ресурсов Lj(x) и Щт), задающие границы потребления ресурсов для каждого действия из Р;
- ценовые функции С(т, су, су'), используемые для оптимизации;
- внутренние и внешние спецификации П(Р) иФ(Р).
Для подобного описания можно сформулировать свойства в терминах временных выражений Ф и доказать их: Ф(Р)—нр, в том числе и для набора спецификаций Pt, ..., Pn, оценить корректность оптимизации с помощью эталонной модели Pe и вычислить результат оптимизации с помощью ценовой функции.
В данной работе была представлена формальная модель процесса вычислений, позволяющая описывать и доказывать свойства распределенных, устойчивых к сбоям вычислений. Эта модель может стать основой для применения формальных методов в среде контролируемого выполнения и обеспечить разработку и выполнение встраиваемых приложений [5].
Литература
1. Liu Z., Joseph M. Real-Time and Fault-Tolerant Systems. Specification, verification, refinement and scheduling, UUNU/IIST, 2005.
2. Pnueli A. The temporal logic of programs // 18th Annual Symposium on Foundations of Computer Science, 1977.
3. Lamport L. The temporal logic of actions // ACM Transactions on Programming Languages and Systems, 1994. Vol. 16 (3).
4. Manna Z., Pnueli A. The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1991.
5. Организация отладочного комплекса для целевых систем со сложной архитектурой / Н.И. Вьюкова [и др.] // Информационная безопасность. Микропроцессоры. Отладка сложных систем; под ред. В.Б. Бетелина. М.: НИИСИ РАН, 2004.
УДК 004.416.2
ПРОГРАММИРОВАНИЕ, ОРИЕНТИРОВАННОЕ НА МОНИТОРИНГ, В КОНТЕКСТЕ КОНТРОЛИРУЕМОГО ВЫПОЛНЕНИЯ
В.А. Галатенко, д.ф.-м.н..; К.А. Костюхин, к.ф.-м.н.; Н.В. Шмырев, к.ф.-м..н.
(НИИСИРАН, г. Москва, [email protected], [email protected], [email protected])
Формальные методы верификации программ, основанные на статической проверке соответствия модели, доказательстве теорем, статическом анализе, не позволяют в полной мере решать задачи, связанные с контролем количественных характеристик выполнения приложений. В статье предлагается подход, включающий как статический анализ программного кода на соответствие модели, так и динамическую верификацию программы в ходе ее выполнения.
Ключевые слова: контролируемое выполнение, мониторинг, распределенные системы.
Под контролируемым выполнением [1] понимается такая организация функционирования аппаратно-программного комплекса, при которой осуществляются сбор и анализ информации о процессе функционирования и выполняются управляющие воздействия на этот комплекс.
Контролируемое выполнение направлено на реализацию комплексом его миссии, несмотря на наличие ошибок и вредоносных воздействий.
Понятие контролируемого выполнения включает следующие основные положения:
интеграция средств информационной безопасности, отладки, управления;
- наличие целостного набора средств контролируемого выполнения, возможность взаимодействия между ними;
охват всех этапов жизненного цикла аппаратно-программных комплексов, включая этап эксплуатации.
В [1] представлена среда контролируемого выполнения (система отладки/мониторинга -СОМ), которая поддерживает возможности инте-