2. Model Checking. Вериф. парал. и распределенных программных систем. Карпов (2010) (1185529), страница 33
Текст из файла (страница 33)
Кроме того, число состояний модели может стать слишком большим. Отметим еще раз: в реальности все переходы являются протшкенными ю времени, их представление в модели как мгновенных неделимых актов является абстракцией, которая пужаются в обосновании. Предспшление рсвльн системы моделью состояний н неделимык переходов будет адекватны в следующих случаях: йй сел~ ньц Пьи нли яви~ сгрг инй О сслг нро: Если л зупныз ° юле щаотО) СйзСТ В неко милых ° янные Звшгш. щтраен ление о шп сл) жлиикг Главе б зватель жом-то верше- ной х мается другш рвцня- егистгля з. ступа, перез лру, если одели ~уточ:рехо- щест- переошью . п.
ратор и пендны )ых в >дели ~и во авляыюй Гным О если неделимость (атомарность) операции (нли группы операций) в реальных дискретных системах обеспечивавгся либо аппаратно, либо прогричмно с помощью, например, аппаратного запрета прерывания процесса нли примитивов синхронизации. В чвспюсти, в модели не нужно н вредно явно представлять каждое изменение напрюкения на входе (выходе) регистров, хранящих значения переменных программы — неделимость операций чтения-записи в регистры обеспечивается аппаратно; (2 если промежугочные состовния, которые система в действительности проходит прн переходе, не пеняют на анавизнруемые свойства системы.
Если промшкуточные сосгояиия являются существенными для анализа, доступными для наблюдения и изменению, то они должны быть явно введены в модель, например, как состоянив "перехода", в которых сисщма находится некоторое время. Ф Определение 6.2 (пдеяввшносшь) Модель системы переходов будет адекватна реальной системе. если пространство состояний системы Переходов совпввшт с пространством значащих состояний реальной системы, а переходы модели явлшотся неделимыми изменениями состояний в реальной системе. 6.2. Реагирующие системы, специфицированные в виде систем переходов В некоторых случаях верификация выполняется лля систем, уже представленных в виде конечной модели системы переходов. Наиболее распространенные такие модели — это конечные автоматы н их разнообразные расширения.
В этом формализме часто описывают задание на проектирование встроенных систем управления, контроллеров, протоколов и т. п. Такое описание обычно яавяеюя техническим заданием на реализацию, но оно же может служить и для проверки свойств разрабатываемой системы с помощью техники любе! сйес(п(пй Рассмотрим спецификацию для разработки и анализа системы упршления микроволновой печью из [54)„представленной состояниями и переходшщ. Множество атомарных преднкатов, которые необходимы для анализа аюйств поведения системы: [огагг, С(ош, Неш, Епгог[ (рис. 52).
В каждом состоянии здесь ушпаны атомарные предикаты, истинные в этом состовнии. Сйме ука.- иявает, что дверца печи открыта, Иеы — что нагрев включен. Если е нено- Глава 5 Сз г61 ВЗаб тором соспжнин шомариый предикат лакеи, он в этом сосгоянии не указывашся.
Например, в состояяии 2 атомарнме преднкаты огагг и Вггог истинны, а С1оэе и угеаг ложны. Переходы помечены действиями — внешннмн н внутренними событиямн, при которых осушествлаюгся переходы. Как говорилось выше. в модели переходов ыы абстрагируемся от "протяженных" переходов: не учитываем, поприпер, того, что дверца лечи может быть только частично присткрьпв.
В этой модели дверца может быль только в двух состояннюс либо "оиигрыию", либо "закрыта". Адекватность этой модели реальной микроволновой лечи обеспечивается устройством печи: в состоянии 6, например, внешняя команла "открыть деерау" игнорируется, датчик "деерва закрыта" вмдает только два значения, лъе и 1а1эе, он установится в апе только при полностью закрытой дверце. Состояние 4 представляет про. тюкенный переход из состояния 7 от запуска нагревателя (событие "начать стрллию") до состояния 3 готовности.
Рш. 5.2. Описание ачгорвтма йункцнонирования микромжиовоя лечи 6оотвстствуюшяя структура Кринке получается ш этого описания отбрасыванием действий на переходвх. Проверка требований к системе производится с игнорированием конкретных действий окружения, которые приведут к нарушению этих требований. Например, требование АС( С1оэе~ Нее)— "В любам состотпш всегда ири открытой дверце иагрееаиие ис лрагюхо- дит", нне н~ огана~ ляется Эта ж пол ьз~ ского функц магна~ 55м ( йуикц томап Более тем, т а кача иие п( нсполь зем аь Кегшш рглисм геяю . надеже переда тель л обсе не ке чере никаци вереда1 ма руст канал С носила С62.
К могут г ним уш отбрась Глава Э Слтуипуры кекмоделирешгт тмиюм У 77 указы- истинними н ~К ГОЯО- ых" петолько вух со. ели ре- састоялатчик антса е зт про- тчать расылнтся к па«)в тхо- дит", доюкно выполнятьсл лри любых лоеедеинах окрулсеиия. Если требование нарушштся, то ведущие к ошибке действия окружения мткно легко тю. становить по контрпримеру, выданному при верификации.
Тем самым появвястся возможность анализа причины ошибки. Эта же спецификация мажет быть и заданием на реализацшо — девиа используемые в проектировании методы структурного синтеза систем логнче. ского управлениа используют подобную спецификацию дия разработки функциональной схемы управляющего автомата.
Например, в системе автоматизированного проектирования Аспте-НПЬ фирмы АЫес включен модуль ГБМ (бйпйе Зшю Масубпе, конечнмй автаиат). Этот модуль облвдаег многофункциональным графическим интерфейсом для описания управлтощих ввтоматОв. 6.3. Реагирующие системы, слецифицированные в виде нескольких взаимодействующих систем переходов более сложный случай — это описание параллельных и распределенных систем, кткдый модуль которых задастая как система переходов. Расамотрим е качестве примера анализ протокола передачи данных.
Формальное описание протоколов с помощью модели конечного автомата уже много лет вспользуегся для их недвусмысленного задания. Протокол, который мы буэем анализировать, носит название РАК (Ромйте Асбпом)едйетепм мМ йенапмпьмоп) — иротокол с лалаэкительиыми ладтверлсдеииями и повтор«кием передачи. Архитектура протокола представлена на рис. 5.3.
Пользователю А необходимо направ|пь пользователю В поток сообщений через ненадежную среду, терякнцую или искажающую сообщения. Для того чтобы передать гюток сообщений к В (пунктирная стрелка на рис. 5.3), пользователь А использует для передачи специальный сервис, задача которого— обеспечить доставку данных без потерь и дублирования в правильном порядке через ненадюкнмй канал. Сервис доставки сообщений использует квнмулнкацнонный протокол, который состоит из двух протокольных объектов, передатчика Ли приемника й. Передатчик принимает от А сообщения, нумерует их и передает приемнику через полудуплексный (однонаправленный) ° анаяС)г).
Получив сообщение, приемник передает его полюоеателю В и посылшт полтверждение получения сообщения через полудуплексный канал СУЯ2. Каналы СИ и СУУ2 иенадткны: как сообщение, так н подтверлщение мтуг потеряться или искаъпъся. Искткение данных обнаруживается нижюия уровнем протокола (кодом, обнаруживающим ошибки), и такие данные втбрасмвтотся, поэтому искажение эквивалентно потере сообщения. Цифрв- Главе В Польз 1, чц !!гг,. перед ними Рна 5.3.
Архнгекгура прозоюла РАд Полу, либо более в сос сполз мн в прямоугольниках на схеме рнс. 5.3 обозначены коммуннкацнонные порты, свазыввкнцне обьекгы протокола. Не так просто обеспечнть основное требование к протоколу передачи данных, а именно, чтобы посланные по ненадежному каналу сообщения былн доставлены от пользователя А пользователю В без потерь и без дублнровання. Например, в канале СА1 может быть потеряно само сообщение.
Прн этом передатчику не остается ничего, кроме как послать зто сообщение повторно. Но пережзтчнк здесь имеет ту же информацию (вернее, отсутствие информации о доставке сообщення), как н в случае, если в канале СЬ2 потеряно подтвержпенне получения сообщения, посланное приемником. Поэтому передатчик должен вжторно передать сообщенне в обоих случаях, Приемник должн разлнчать две ситуации, в одной нз которых приходит дублированное сообщение, а в лругой — нет. Для нскжочення дублнровання, сообщения последовательно нумеруются по модулю 2 однобитным номером О, Г О, 1, ....
Протокол РА — это модификация хорошо нзвестного кяасснческого протокола вльтерннрующего бнгв (АВР), в котором осуществляется олнобнтная нумерация не только передаваемых сообщений, но н подтверждений на этн щюбщення. Известно, что если подтверждения не несут номер подтвержлаемого сообщення, как в протоколе РАК, то протокол некоррекюн. Наша задача — выявить эту некорректность с помощью построенной модели переходов. Нв рнс. 5Д все сбьекты протокола предспщлены конечно-автоматными модвлвмн.
Рвссмотрнм вх по порядку. хронг сом в ннмм Перщ рацня пращ цхмз пома пор- еОТО- !ТНЗЯ в этн кдае заде пере- 1 мо- дан. были роваПри е поггвие поте- тому мннк ~нное я по- Рнс ка. Взанмсдеяствукнцие автоматы, реализующие протокол РАК Пользователь А последовательно передаст данные, занумерованные О илн 1, через порт 1, выполняа операцию !!<данные>, т. е. операции ! Ые ющ- 1Ы, . Для упрощения модели сообщения нумеруются пользователем А, а не передатчиком, что, конечно, несущественно.
Когда передатчик плов, он принимает сообщение через этот порт, выполняя операцию 17<далльм >. Синхронизация обеспечивается тем, что в порту посылка данных одним процессом выпслняегсл тогда и только тогда, когда другой процесс этн данные принимает в ътом же порту — это взаимодействие рандеву (хэндшейк). Перелатчик после чтения данных передщт их в канал СЬ2 через порт 2 (операция 2!<Осиные >), после чего ждет подтвеюкдения асс, которое должно. прийти через порт 6. Поскольку даннме могут потеряться, через некоторое время (тайм-аут) передатчик повтораег посылку сообщения в канал (переход, помеченный Т ). Полудуплексный канал Сл! принимает в порту2 сообщение, помеченное либо О, либо 1, и передаст его приемнику в порту 3. Канал может принять не более одного сообщения.
Чтобы припать следующее, канал доюкен вернуться ° состояние О. В канале сообщение может быть поюряно. Это молелируется спонтанным переходом канала в состояние О. Остальные автоматы щктрое- ны аналогично. Все процеасы работают пврвштгьно,.аннхроннзируясь операциями коммуникации. Структура Крипке, представляюшая модель протокола РАК вЂ” зто асинхронное произведение (композиция) компонентных автоматов, Глобаяьные состояния этого проюведения — зто наборы состояний всех компонентов.