2. Model Checking. Вериф. парал. и распределенных программных систем. Карпов (2010) (1185529), страница 39
Текст из файла (страница 39)
перекопы мшклу состояниями в ду: П оператор языка высокого уровня; П строка операторов; П стр Л изм ит. Ответ синая раэр б р 1'б зельнс те шы проны в пара ность Для рс провоз Лна~ П на мал К насэ тическ кации. нрогра ство нг комле~ цнн. В фикац~ ня, уд процес и р нол)«м томати Метод ленив ~ Этот п ленка.
выделе 5леш 5 пь нечения. ских и пакета яодей- етодв!капни ~ беэох про. ков— — это что в мско. к слуэдевн. имам. нных, кско- , прок прог проюжно экямй шния, шнмо е. пе- П строка ассемблера; Л изменение напряжения на входе (выходе) регистре, хранящего значение ит. п.
Ответ на этот вопрос определяекя, конечно, целью моделирования: построенная модель должш быль адекватной, т. е. те саойспж, которые интересуют разработчика в системе Ю, долины сохраняться в модели. Если, например„ разработчика интересуют пробяемм, которые могут возникнугь из за параллельной работы подсистем, то одним переходом должны быть представлены те шаги динамики системы, которые неделимы с точки зрения остальных ароцессов. Именно чередование таких шагов определяет свойства поведения ° параллельных системах. Следует, конечно, учитымпь реальную недшщиость операгэий, подле)жшшши)ео аппаратурой' Дтя реальных систем построение соответствующей стРУктУРы Крипшкчаще проводится в лва этапш П на первом всв параметры огрвннчиваютсв конечными областями определения; З иа втором для полученной системы структура Кринке строима фор.
мально. К настоящему времени разработано несколько программнмх пакетов, автоматически выполншощих многие зтапм, необходимые при проведении верифн° вцни. Пользователь дошкен только описать параллааную систему иа язмке нрогрвммирования лостаточио высокого уровня и задать проверяемое свойство на языке темпоральной логики.
Пакет сам строит системм переходов Лпв всмпонентнмх процессов и выполняет операцию их асинхронной комшжнцин. В данной главе представлен юык Ртоше!а, входной ззьнс системы жгрнфнкации Брик Этот взык является языком программирования вмсокого уровня, удобнмм для описания множества параллельных взанмодействующмх процессов, каналов взаимодействия и рябовы с простыни типами данных.
Построение системы переходов жш каждого процесса и нх композиции для шиучения структуры Кринке осуществляется на основе этого описания автоматически, без участия программиста. 6.Э. Замечания Метод явного вьщелення состояний для описания систем логнчесного управления и протоколов коммуникации широко испояюуется много десятилетий. Этот подход давно является общепринятым и длв дискретных спеши управления.
В нашей стране школа академика М. А. Гаарвкжа испольэовала явное ° ыделение состояний для синтеза систем управления с начала бб-х гг. ([157)). Глава 5 В области разработки протоколов Грегор Бохманн (Огейог Восйшапп) более 30 лет назад в [22] писал о таком подходе как о "фольклоре", уже тогда широко известном в среде программистов.
Амир Пауэлл в 1977 г. выделил так нвзываемме "реагирующие 'системы" (геаш!Ре зуззепы) как специальный квасе систем, требующий своих средств для описания функционирования (состояния и переходы) и верификацим (проверка логичесних утверждений об упорядоченности собьпий).
Карты состояний (зццесйагш) — визуальное представление состояний и переходов систем, которое является расширением графического предсшвления конечных автоматов, были предложены Дэвидом Харелом в [б Ц для удобного наглядного и строгого представления сложных реагирующих систем. Карты состояний уже много лет являются фактическим стандартом для визуальной спецификации реализаций бортовых и встроенных синхронных систем управления реального времени в авиационной промышленности, на транспорте, в военных применениях й энергетике [62].
Во многих областях применение этой техники состоит в использовании графического редактора для построения визуального представления взаимодействующих компонентов системы, к~лороа является основой для верификации разработки и автоматической генерации кода реализации. Одним из самых известных представителей этого подхода является среда 5САОЕ для разработки управлшоших систем [187]. Этот коммерческий продукт фирмы Евмге) Тес(ию!Ой(ез с начала 90-х гг. прошлого века широко используется для разработки надежных встроенных систем управления лля критических применений в космической и оборонной технике. В нашей стране метод функциональной спецификации систем с помощью явного выделению состовний и переходов был "переоткрыт" в !991 г.
и известен под ншванием Яийс)ь технологии. Построенме реагирующих систем может производиться так, чтобы модель переходов, расширенная тем или иным способом, могла бы генерироваться из разработки. Например, в работе [50) описывается новый язык программировапия юА ((прнг70и(рш Апшшага) для моделированив и реализации распределенных систем н набор инструментов, упрошмощих программирование на этом шыке. Программа на языке ЮА может быть использована как для реализации реагирующей системы (с помощью соответствующего трызслятора), так н для формальной проверки свойств реализации, генерируя систему переходов.
Другой подход состоит в том, чтобы модель системы переходов автоматически вычленить из программы на языке высокого уровня, описывающей функционирование реагируклцей системы [38]. Приведенный в данной главе анализ протокола РАК выполнен по аналогии с анавнзом протокола авьтериируюшего бита, представленном в [20]. Автором снсгемы верификации ЗР1п являетсв Джерард Холзманн (Оспа Но!жпапп).
Система свободно распространяется с 199! г. С 1995 г. проводятся семинары 591пь верн( Лж. 7 зовьп Кали~ ° Фри8 пРОРГ в [80' ланы ° ациг Поем шрси прем~ шие ~ [77) 1 в язы, Зксш ЛОМИ! шькет верю] 5.1. Р торыс 21 Рз: 3наче ты зн срами 5.2. Р РАК. 5З, Г леннь 5лй И фОРМ1 ту Зп твери щих сизгмм более а шнгл так гьный вання лений льнов ениеч Дэаи- слож)акгиеых и щионгегике ~ванин аимо- фифи~нм из >Е для бирмы ся длв х прн- функзний и !из!с)ь еодель гься из амире~асарание на яя реаятора). у перев аетсзываю.
алогии втором плана). ениары Зр!п%ойзйор, в 2008 г, состоялсв 15-й семинар [1 89). С помощью Зр!и были верифицированы многие сложные программные системы. В настоящее время Дж. Холзманн является сотрудником ХАЗА (где проблема верификации бор. говых систем космической техники чрезвычайно актуальна) и профессором Калифорнийского технологического ннстнз)чв. Подробное описание системы верификации Зргп вместе с примерамн верифицированных распределенных программ и обсуждением техники абстракции и специфиющин представлено в [80) и [!0).
Прыгпгческие примеры верификации с помощью этой системы ланы в [75). Монография Дж. Хслзманна [79) содержит введение а коммуникационные протоколы и методы их формального анализа с помощью Зр!и. Последняя версия Зргл описана в его новой книге [78). В работе [63) описана версия Зрш для многоядериых процессоров. В 2001 г.
система ЗР1п получила премию АСМ Зумеш Зойтгаге Аггее, которой егмголно нагрюкдаются лучшие профессиональные разработка в области программирования. В работе [77) Дж, Холзманн даат методические рекомендации ло построению моделей е языке Ргоою!а. Экспериментальная система г АЗМ описана в [60). Ссылка [186) выводит на домашнюю страницу разработчиков этой системы. Описание возможнссгей пакета Я.АМ приведено в [12), где описывается опыт примененив этого аерификатора более чем длв сотни драйверов ОС ь)г!ш)оии.
5.10. Задачи к главе 5 5.1. Рассмотрите параллельную программу Р1 [[).4 с двумя процессамн, йо. торые выполняются асинхронно: ! аю х; Ы щг х: Гп сзг х. "З ! Гэг: ! азг уг хг Ьэг ю «ьуг сз: чг х ! Значение перемшшой х вначале равно О. Рассмотрите все жжмпжные варианты значений, которые могут иметь переыениые г, * и ч по завершении программы (после завершения обоих процессов). 5.2. Рассмотрите несколько возможных вычислений по модели протокола РАЗ.
5.3. Прокомментируйте возможные вычисления протокам РАД, представленные в ргпделе 5.3. 5эй Измените описание протокола РАЗ так, чтобы подтверхгдения несли информацию о номере принятого сообщения, 0 или 1. Проверьте вручную работу этого протокола нв вычислениях с потепямн сообщений, потерями щцьтаерященйй, с "нетерпеливым передатчиком". Глене З Т)итад 1: Ьеегп х: 1З х: 2 епн ТЪеабйньезгп у: х; ы х епо 5.9.