Теория параллелизма. Самостоятельные работы. Учебно-методическое пособие
.pdf•(1) – пользователь лифта,
–{ , 1, 2, 12, 21, , , , };
•(1) – платформа с датчиками этажей,
–{ , , , };
•1 (1) – кнопка вызова на 1-м этаже,
–{ 1, 1, 1, 1};
•2 (2) – кнопка вызова на 2-м этаже,
–{ 2, 2, 2, 2};
•12 (3) – кнопка перемещения вверх на платформе,
–{ 12, 12, 12, 12};
•21 (4) – кнопка перемещения вниз на платформе,
–{ 12, 12, 12, 12};
•(5) – дверь,
–{ , , , }.
Задание 4
Составим алфавитный список всех событий системы :
•– датчики платформы 1 порождают событие, что лифт находится на 1-м этаже, которое наблюдается контроллером и пользователем 1;
•– датчик 5 порождает событие, что дверь закрыта, которое наблюдается контроллером ;
•– пользователь 1 порождает событие, что дверь закрыта, которое регистрируется датчиком 5;
•– контроллер порождает воздействующее событие, что лифт едет вниз, которое наблюдается платформой 1;
•– датчик 5 порождает событие, что дверь открыта, которое наблюдается контроллером ;
•– пользователь 1 порождает событие, что дверь открыта, которое регистрируется датчиком 5;
•1 – датчик 1 порождает событие, что нажата кнопка на 1-м этаже, которое наблюдается контроллером ;
•2 – датчик 2 порождает событие, что нажата кнопка на 2-м этаже, которое наблюдается контроллером ;
•12 – датчик 3 порождает событие, что нажата кнопка движения вверх, которое наблюдается контроллером ;
•21 – датчик 4 порождает событие, что нажата кнопка движения вниз, которое наблюдается контроллером ;
•1 – пользователь 1 порождает событие, что нажата кнопка на 1-м этаже, которое регистрируется датчиком 1;
•2 – пользователь 1 порождает событие, что нажата кнопка на 2-м этаже, которое регистрируется датчиком 2;
11
•12 – пользователь 1 порождает событие, что нажата кнопка движения вверх, которое регистрируется датчиком 3;
•21 – пользователь 1 порождает событие, что нажата кнопка движения вниз, которое регистрируется датчиком 4;
•– датчики платформы 1 порождают событие, что лифт находится на 2-м этаже, которое наблюдается контроллером и пользователем 1;
•– контроллер порождает воздействующее событие, что лифт едет вверх, которое наблюдается платформой 1;
•– ожидание событий от датчиков среды;
•– отсутствие пользователя.
Задание 5
Сформулируем на естественном языке свойства корректности функционирования системы .
•Запрещена одновременная подача сигналов up и down.
•Движение платформы возможно только при закрытых дверях.
•Движение начинается после нажатия на одну из кнопок вызова.
•В случае отсутствия команд управления в течение 20 секунд лифт должен быть автоматически перемещен на нижний этаж.
Самостоятельная работа № 2 по теме "Построение систем переходов"
Справочные материалы
Диаграмма переходов процесса – это ориентированный граф, вершинами которого являются состояния процесса, а дугами – переходы между состояниями.
Дуги определяют, из какого состояние в какое может перейти процесс.
Возможны следующие варианты задания диаграмм переходов.
1)Метками состояний являются события процесса, причём может быть несколько состояний, помеченных одним и тем же событием. Переходы из одного состояния в другое диктуются логикой взаимодействия процессов, неформально описанной в справочном материале к самостоятельной работе № 1.
2)Состояние процесса удобно помечать либо как [0, 1, . . . , ], либо как [0, 1, . . . , ][ ], где – имя события, связанного с состоянием , 0 – идентификатор процесса, который порождает событие , 1, . . . , – идентификаторы процессов, которые наблюдают (регистрируют) событие , – номер (натуральное число) вхождения события в состояния в случае, если событие входит в разные состояния.
Таким образом, уникальным идентификатором (именем) состояния является либо (если событие e входит один раз в диаграмму переходов), либо [ ].
Если – процесс, для которого строится диаграмма переходов, то он обозначается прочерком _ для простоты.
12
Состояние с пометками вида вида [_, _] или [_, _][ ] называется внутренним состоянием процесса. Оно порождается данным процессом и не наблюдается никаким другим процессом.
Базовые задания
1)Для выбранной в задании 1 параллельной системы построить диаграмму переходов для каждого процесса.
Параметры задания
Общие:
•Диаграмму переходов можно рисовать, например, в https://mermaid.live/.
Время выполнения: 4 дня.
Количество баллов: 40 баллов.
Образец решения
Задание 1
Исходные mermaid-коды диаграмм переходов процессов даны в приложении В.
Controller (C)
13
User (E1)
Lift (P1)
14
Button1 (S1)
Button2 (S2)
Button12 (S3)
15
Button21 (S4)
Door (S5)
Самостоятельная работа № 3 по теме "Темпоральные логики"
Справочные материалы
Синтаксис LTL формул
•если – атомарная формула, то – LTL формула;
•если и – LTL формулы, то ¬, , – LTL формулы;
•если и – LTL формулы, то , , , – LTL формулы.
Базовые задания
1)Сформулируйте три свойства корректности поведения Вашей системы с помощью формул темпоральной логики LTL, содержащих различные сочетания темпоральных операторов.
Задания повышенной сложности
1)Сформулируйте дополнительные свойства c разнотипными формулами.
16
Параметры задания
Время выполнения: 4 дня.
Количество баллов: 20 баллов.
Дополнительные баллы: За каждую лишнюю правильную формулу с темпоральной структурой, отличной от формул примера, добавляется два балла. За каждую лишнюю неправильную формулу вычитается один балл.
Образец решения
Задание 1
•Запрещена одновременная подача сигналов и .
–¬( )
•Движение платформы возможно только при закрытых дверях.
–¬( ), где = .
•Лифт не двигается, пока не нажата одна из кнопок вызова.
–(¬ (¬ )), где
–= 1 2 12 21.
•Лифт поедет, когда будет нажата одна из кнопок вызова.
–(¬ (¬ ( ))).
•В случае отсутствия команд управления в течение 20 секунд лифт должен быть автоматически перемещен на нижний этаж.
–( ( (_ ≥ 20 ))), где
–= ¬,
–_ – время, в течение которого для лифта выполняется свойство
.
Самостоятельная работа № 4 по теме "CSP-спецификация процессов"
Справочные материалы
Частые ошибки, связанные с некорректным синтаксис CSP-описания процессов
Пусть , , – процессы. , , , – события. Тогда следующие описания ошибочны:
1)= → → – нет завершающего процесса (правильно = → → → ),
2)= → → – процесс вместо события,
3)= → → – процесс вместо события,
4)= | – выбор между незащищёнными процессами (процессами без префиксов),
5)= → | → – выбор между одинаковыми событиями,
6)= → | – незащищённый процесс в выборе,
7)= → | → – нет завершающего процесса,
8)= → | → – нет завершающих процессов.
17
Задания
1)Опишите алфавиты своих процессов.
2)Специфицируйте поведение этих процессов с помощью известных вам операторов формализма CSP.
Параметры задания
Общие:
•Доступные нам средства описания процессов с помощью операторов префикса
→ и выбора 1 → 1 | . . . | → не позволяют описывать процессы среды, так как эти средства требуют выполнение некоторого события запуска или (управляются событиями запуска), тогда как процесс среды запускается недетерминированно без условия на запуск.
•Поэтому в задании 2 нужно специфицировать все процессы системы за исключением процессов среды.
•Спецификация процессов среды станет возможной, когда в дальнейшем будут введены операторы сильного недетерминизма и слабого недетерминизма □.
Время выполнения: 4 дня.
Количество баллов: 50 баллов.
Образец решения
Задание 1
≡ { , 1, 2, 12, 21, , , , , , };
≡ { , , , };
1 ≡ { 1, 1, 1, 1};
2 ≡ { 2, 2, 2, 2};
12 ≡ { 12, 12, 12, 12};
21 ≡ { 12, 12, 12, 12};
≡ { , , , }.
18
Задание 2
Controller (C)
_ = →
= → |
1 → | 2 → ;
= → → → |
→ ;
= → → → | → ;
= → → 12 → |
→ ;
= → → 21 → | → ;
= → → (
→ |
21 → );
= → → (
→ |
12 → );
19
Lift (P1)
= → _ |
→ ;
_ = → _ |
→ → _;
_ = → _ |
→ → _.
Button1 (S1)
1_ = 1 → 1
1 = 1 → 1 |
1 → 1 → 1 → 1 → 1.
Button2 (S2)
2_ = 2 → 2
2 = 2 → 2 |
2 → 2 → 2 → 2 → 2.
Button12 (S3)
12_ = 12 → 12
20
