Теория параллелизма. Самостоятельные работы. Учебно-методическое пособие
.pdfПрерывание регулируется средой, задаваемой процессами и .
Модификация процесса _ описывается с помощью оператора прерывания следующим образом:
_ = → _ → → _.
Прерывание регулируется средой, задаваемой процессами и .
Button1 (S1)
Модификация процесса 1 описывается с помощью оператора прерывания следующим образом:
1 = 1 → 1
1 → 1 → 1 → 1 → 1.
Прерывание регулируется средой, задаваемой процессом
1 → ( _
→ → → 12).
Button2 (S2)
Модификация процесса 2 описывается с помощью оператора прерывания следующим образом:
2 = 2 → 2
2 → 2 → 2 → 2 → 2.
Прерывание регулируется средой, задаваемой процессом
41
2 → ( _
→ → → 21).
Button12 (S3)
Модификация процесса 12 описывается с помощью оператора прерывания следующим образом:
12 = 12 → 12
12 → 12 → 12 → 12 → 12.
Прерывание регулируется средой, задаваемой процессом 12.
Button21 (S4)
Модификация процесса 21 описывается с помощью оператора прерывания следующим образом:
21 = 21 → 21
21 → 21 → 21 → 21 → 21.
Прерывание регулируется средой, задаваемой процессом 21.
Самостоятельная работа № 13 по теме “Разделение через интерливинг”
Справочные материалы
Интерливинговая форма параллелизма ||| обладает следующими свойствами:
•= ;
•взаимодействия процессов и с внешними (разделяемыми) процессами является произвольным интерливингом;
•нет прямого взаимодействия между этими процессами;
•непрямое взаимодействие осуществляется через сервисы разделяемого подчиненного процесса. Для подчиненного процесса такое взаимодействие задается процессом : // ||| .
42
Базовые задания
1)Найти процесс системы, который могут разделить два пользователя (или две среды). Записать соответствующую модификацию этих процессов с запросами и освобождениями.
Параметры задания
Время выполнения: 4 дня.
Количество баллов: 20 баллов.
Образец решения
Задание 1
Процесс _ может разделять несколько процессов _ :
: _ // _ ||| _.
Модификации этих процессов с запросами и освобождениями имеют следующий вид.
User (E1)
_ = → ;
= _ 1 → (
_
→ → . (
: ! → : ! →
→ 12)) 2 → (
_
→ → . (
: ! → : ! →
→ 21));
12 = 12 → → ( 21);
43
21 = 21 → → ( 12);
= → . (
: ! → : ! →
→ _).
Door (S5)
_ = → ;
= → |
→ . (
? → ! → ? → ! → |
→ ).
Самостоятельная работа № 14 по теме “Множественные ресурсы”
Справочные материалы
Процесс < описывает совокупность из одинаковых разделяемых ресурсов с доступом по индексу {0,1, . . . , − 1} через каналы и .
Ситуация, когда процесс имеет доступ к этой совокупности ресурсов, описывается процессом < // . Доступ к каналам и этих ресурсов осуществляется через индексы . ! и . ? с недетерминированным выбором свободного ресурса с помощью процесса
□<( ( ) → ) = ( (0) → 0 | (1) → 1 | . . . | ( − 1) → −1).
Базовые задания
1)Найти процессы системы, которые могут быть множественными ресурсами, которые разделяют другие процессы системы. Записать соответствующую модификацию этих процессов и всей системы.
Параметры задания
Время выполнения: 4 дня.
44
Количество баллов: 20 баллов.
Образец решения
Задание 1
Разделяемым ресурсом является процесс . Рассмотрим систему из 3 лифтов.
= ! → _ | ! → _;
_ = ! → _ | ? → ! → _;
_ = ! → _ | ? → ! → _;
=<3 .
Процесс модифицируется для работы с этой системой следующим образом:
: // ;
_ = →
= → |
1 → □<3(
. . ? → . . ! →
. . ? → [1] |
. . ? → [1] ) |
2 → □<3(
. . ? → . . ! → . . ? → [1] |
. . ? → [1] );
45
= → |
1 → | 2 → ;
= □<3(
. . ? → . . ! → . . ? → |
. . ? → );
=
□<3(
. . ? → . . ! → . . ? → |
. . ? → );
= → → 12 → |
→ ;
= → → 21 → |
→ ;
= . . ! → . . ? → (
→ |
21 → );
= . . ! → . . ? → (
→ |
12 → );
46
Семестровые самостоятельные работы
Самостоятельная работа № 1 по теме “Спецификация параллельной системы на языке Promela и верификация её свойств в системе SPIN”
Справочные материалы
Базовые задания
1)Записать спецификацию выбранной системы на языке Promela.
2)Провести верификацию 3 свойств системы, сформулированных в рамках самостоятельной работы № 3 с помощью SPIN.
Параметры задания
Общие:
•Задание сдаётся в виде файла Promela-спецификации.
•Не обязательно буквально следовать тому набору состояний и переходов между ними, который вы разработали в базовых заданиях.
•Система должна работать бесконечно за счёт обработки сигналов пользователя/среды, поступающих время от времени и недетерминированным образом. Например, к лифту бесконечно часто подходит пассажир и жмёт разные кнопки.
•При верификации LTL-свойств в SPIN включайте кнопку use claim.
•Если в окне результатов верификации вы увидели сообщение No errors found, не спешите радоваться. Убедитесь, что несколькими строчками выше отсутствует сообщение Search not completed.
•Если такое сообщение есть, это означает, что SPIN не провёл верификацию до конца. Как правило, в таких случаях ему не хватает памяти. Выделяемую память можно увеличить. В том же окне результатов верификации есть инструкции, как именно это сделать.
•Но лучше пересмотреть верифицируемую модель на предмет излишней сложности.
•Способы снизить сложность:
a.задать типы переменных и каналов минимальными из возможных (вместо int – byte, и т. п.), уменьшить ёмкость каналов;
47
b.использовать atomic и d_step повсюду, где это возможно;
c.снизить число переменных, каналов и процессов.
•При верификации свойств вида ( → ), где – атомарное высказывание, убедитесь, что действительно хотя бы иногда выполняется, проверив формулу (! ) (а ещё лучше выполняется бесконечно часто – ). Иначе получится, что формула ( → ) истинна в модели, но бессмысленна. Похожая ситуация для формул вида → . Если ложно, то формула неинтересная. В этом случае SPIN пишет, что глубина поиска 0.
•Следите, чтобы в вашей Promela-модели не было блокировок. Их отсутствие можно проверить с помощью формулы [ ](! ).
•Для освоения SPIN и Promela полезно почитать учебник [2] и руководство [1].
•Также удобно пользоваться руководством на сайте SPIN http://spinroot.com/spin/Man/promela.html. Лучше ходить через VPN, чтобы не обходить капчи.
•Запустить Spin онлайн можно по ссылке http://www.cse.chalmers.se/edu/year/2016/course/TDA383_LP1/spin/.
Время выполнения: 6 недель
Количество баллов: 80 баллов.
Список литературы
1)Holzmann G.J. The SPIN model checker: Primer and Reference Manual // AddisonWesley Professional, 2003. 690 p.
2)Mordechai Ben-Ari. Principles of the Spin Model Checker // Springer London, 2008. 220 p.
3)Карпов, Ю.Г. Model Checking. Верификация параллельных и распределенных программных систем : учебник / Ю.Г. Карпов ; СПб.: БХВ-Петербург, 2010. – 560 с.
– ISBN: 978-5-9775-0404-1 ; То же [Электронный ресурс]. – URL: https://www.studmed.ru/karpov-yug-model-checking-verifikaciya-parallelnyh-i- raspredelennyh-programmnyh-sistem_6c50a28cdfe.html
4)Хоар Ч. Взаимодействующие последовательные процессы. М.: Мир, 1989. 264 с.
Приложения
Приложения А. Список задач
1. Эскалатор
Эскалатор может двигаться как вверх, так и вниз. Лента эскалатора начинает движение при присутствии пользователей и прекращает движение при их отсутствии. Движение также прекращается при нажатии тревожной кнопки и попадании посторонних предметов между ступеньками.
48
2. Турникет в метро
Турникет открывает проход при использовании карты с достаточным количеством денег или при опускании правильного жетона в приёмник. Если денег на карте нет или вместо жетона опустили неизвестно что, турникет остаётся закрытым. После окончания прохода одного пользователя турникет закрывается.
3. Вращающаяся дверь
В трёхсекционную вращающуюся дверь можно войти/выйти с двух сторон. В нормальном состоянии она неподвижна, а при приближении пользователя начинает вращение. Вращение продолжается, пока пользователь находится внутри пространства вращения. Вращение останавливается, когда пользователь покидает это пространство. Вращение приостанавливается на небольшое время, когда на секционные перегородки оказывается давление.
4. Сушилка для рук
Включается, когда руки находятся под прибором. Выключается, когда руки отсутствуют в течение некоторого времени, а также при перегреве фена.
5. Термопот
Подогревает воду до трех разных температур и поддерживает заданную температуру. Крышка на замке, пока требуемая температура не достигнута. Защита от отсутствия воды.
6. Торговый автомат
Имеет пять лотков с пятью видами товаров. Выдаёт товар при вводе кода товара и оплатой картой или монетой. Если код некорректен, или недостаточно денег на карте, или монета не соответствует коду товара, автомат не осуществляет транзакцию или возвращает монету.
7. Автомобильный шлагбаум с датчиками появления и распознаванием номеров
Шлагбаум открывается при приближении авто с правильным номером и закрывается при проезде. Нужно отслеживать ситуацию, когда подряд едет несколько машин. Если номер не распознан, шлагбаум не открывается.
8. Шлагбаум с телефонным ключом
Шлагбаум открывается при звонке с зарегистрированного номера телефона и закрывается, когда автомобиль под ним отсутствует. Нужно отслеживать ситуацию, когда подряд едет несколько машин. Если телефонный номер не зарегистрирован, шлагбаум не открывается.
9. Система охлаждения двигателя
Температура двигателя поддерживается ниже предельного значения с помощью охлаждающего расходуемого агента. Когда количество охлаждающего агента приближается к критически малым значениям, то (1) при работающем двигателе,
49
подаётся звуковой сигнал и, если двигатель не был выключен, через некоторое время система охлаждения отключает его, и (2) при работающем двигателе подаётся звуковой сигнал при попытке пользователя завести двигатель, и двигатель не запускается.
10. Автоматические двери в трамвае
Закрываются, когда трамвай начинает движение и закрыты до его остановки. Открываются, когда есть желающие выйти. Можно нажать кнопку дверей во время движения, чтобы выйти на ближайшей остановке.
11. Умное освещение
Включает и выключает определённые лампы в зависимости от времени суток, освещённости и присутствия пользователя.
12. Джакузи с подогревом
С помощью впускного и выпускного клапанов джакузи циклически наполняется и опорожняется, а температура и уровень воды поддерживаются между двумя предельными значениями.
13. Система сортировки таблеток
Лоток подачи случайным образом заполняется круглыми и овальными таблетками, которые могут быть синими и красными. Два улавливающих цилиндра сортируют шары по трем различным буферным каналам. Контактный и оптический датчики могут различать типы таблеток. Пользователь извлекает нужные ему таблетки из соответствующих каналов.
14. Железнодорожный переезд со шлагбаумом
Поезда могут подъезжать к железнодорожному переезду с шлагбаумом с обеих сторон. При приближении поезда шлагбаум должен быть заблаговременно закрыт, а сигнал светофора должен быть своевременно переключен на красный с помощью путевой сигнализации. Когда поезд отъехал от переезда и новый поезд не приближается, шлагбаум можно снова открыть и светофор можно переключить.
15. Шлюзовая камера
Корабли подходят к шлюзу с обеих сторон. Необходимо контролировать шлюзовую камеру, чтобы корабли могли пройти через участок реки без аварий. Корабли автоматически входят в шлюзовую камеру, когда сигнал входа зеленый. Они выходят, когда выходные ворота полностью открыты.
16. Многоместная автостоянка
Транспортные средства автоматически въезжают на многоместную автостоянку при открытии шлагбаума и зеленом сигнале въезда. Машины могут выезжать, когда соответствующий шлагбаум открыт и сигнал выезда зеленый. Контроль въезда связан
50
