Теория параллелизма. Самостоятельные работы. Учебно-методическое пособие
.pdf12 = 12 → 12 |
12 → 12 → 12 → 12 → 12.
Button21 (S4)
21_ = 21 → 21
21 = 21 → 21 |
21 → 21 → 21 → 21 → 21.
Door (S5)
_ = → ;
= → |
→ → → → .
Самостоятельная работа № 5 по теме “Трейсы процессов”
Справочные материалы
Трасса (или трейс) поведения процесса – это конечная последовательность событий, в которые процесс был вовлечен до определенного момента времени.
Мы игнорируем возможность того, что два события происходят одновременно. Регистрируется сначала одно из них, а затем другое (порядок не имеет значения).
Пусть < 1, … , > обозначает последовательность событий 1, …, , <> – пустую последовательность событий, ̂ – конкатенация последовательностей и , – конкатенация последовательности , выполненная раз, 0 =<> .
Сужением последовательности относительно множество символов называется последовательность, полученная из удалением всех элементов, не принадлежащих множеству .
Последовательность является префиксом последовательности (обозначается ≤ ), если существует последовательность такая, что = ̂.
21
Пусть (или ) обозначает процесс, который ведет себя таким же образом, как процесс , после того как вовлечен в события трассы .
Пусть ( ) обозначает множество трасс процесса . Заметим, что всегда <> ( ).
Последовательность является интерливингом последовательностей и , если она составляется из элементов этих последовательностей ровно в том порядке, в котором они входят в эти последовательности. Например, последовательность < 1,6,3,1,5,4,2,7 > является интерливингом последовательностей < 1,6,5,2,7 > и < 3,1,4 >.
Процесс Р является циклическим, если при любых обстоятельствах он может вернуться в исходное состояние. т. е. ( )( ( ̂ ) = ).
Базовые задания
1)Запишите три разных трейса длины 10 для своего Контроллера, содержащих не более трех одинаковых событий.
2)Постройте сужение ( ) этих трейсов относительно алфавита какого-либо другого процесса.
3)Сравните исходные трейсы и их сужения.
4)Выберите короткий процесс и формализуйте множество его трейсов.
5)Запишите процесс , где – Контроллер, а – трейс длины от 3 до 5, содержащий разные события.
6)Определите, являются ли циклическими в CSP-смысле все процессы Вашей системы.
7)Для одного из трейсов п. 1 найдите кратчайший трейс, который приводит к исходному процессу: : / ( 1 ̂ ) = .
Параметры задания
Время выполнения: 4 дня.
Количество баллов: 30 баллов.
Образец решения
Задание 1
Построим одну трассу для процесса системы :
1 ≡< , 1, , , , , 1, , , >
Остальные трассы строятся аналогичным образом.
Задание 2
Построим сужение трассы 1 относительно алфавита процесса
22
1 = 1 { , , , } =< , , , >.
Сужения для остальных трасс строятся аналогичным образом.
Задание 3
Проведем сравнение трассы 1 и ее сужения 1 :
•трасса 1 не равна сужению 1 ;
•трасса 1 и сужение 1 не являются префиксами друг друга;
•существует последовательность , а именно
=< , 1, , 1, , >,
такая, что трасса 1 является интерливингом и 1 .
Задание 4
Множество трасс для процесса определяется следующим образом:
( ) =
{| ≤ (< > ̂< > ̂< > ̂< >) }
>0 >0 ≥0
{| ≤ (< > ̂< > ̂< > ̂< >) }.
>0 >0 ≥0
Задание 5
Выберем трассу =< , 1, >. Тогда
= → → .
Задание 6
Все процессы системы , за исключением инициализирующих, являются циклическими в CSP-смысле, поскольку для каждого из этих процессов в любое состояние можно попасть из начального состояния и из любого состояния можно вернуться в начальное состояние.
Например, начальным состоянием для процесса является . Из диаграммы переходов этого процесса видно, что в любое состояние можно попасть из состояния и из любого состояния можно вернуться в состояние .
23
Инициализирующие процессы 1_ , 2_ , 12_ , 21_ и_ также являются циклическими, но по другой причине.
Например, для инициализирующего процесса 1_ в диаграмме переходов процесса можно найти состояние 1, из которого существует переход только в состояние 1. Тогда множество трасс, продолжающихся из состояния 1 совпадает с множеством трасс процесса _ . Так как в состояние 1 можно прийти из любого состояния процесса 1, трасса в определении циклического процесса подбирается так, чтобы процесс 1 / ( ̂ ) попадал в состояние 1. Тогда
1_ / ( ̂ ) = 1_,
что и требовалось доказать.
Для других инициализирующих процессов этой группы доказательство проводится аналогичным образом.
Для инициализирующего процесса _ состояния, подобного 1 не существует, так как кандидатами в такое состояние могут быть только состояния, имеющие переход в , а все такие состояния имеют дополнительно другие переходы. Таким образом, процесс _ не является циклическим.
Задание 7
Найдем кратчайший трейс для трейса 1, который приводит к исходному процессу
:
=< 12, , , >.
Самостоятельная работа № 6 по теме ”Спецификация. Взаимодействие и Параллелизм”
Справочные материалы
Спецификация процесса
Спецификация процесса определяется как формула, зависящая от переменной , принимающей в качестве значения допустимые трассы этого процесса.
Процесс удовлетворяет спецификации (обозначается как ), если
( ( ) ).
24
Законы для оператора параллельного выполнения
• L5A. ( → ) ( → ) = → ( ( → ));
• L5B. ( → ) ( → ) = → (( → ) );
•L6. ( → ) ( → ) = → ( ( → )) | → (( → ) ));
•L7. Пусть = ( : → ( )) и = ( : → ( )). Тогда ( ) = ( : → ′( )
′( )), где = ( ∩ ) ( ) ( ), ′( ) = ( ), если , и ′( ) =
впротивном случае, ′( ) = ( ), если , и ′( ) = в противном случае.
Базовые задания
1)Формализуйте спецификацию трех свойств Контроллера в CSP-терминах.
2)Задайте параллельное исполнение двух процессов своей системы с пересекающимися алфавитами 1 2.
Параметры задания
Общие:
•В задании 2 должны быть приведены процессы 1, 2 и 1 2.
•В задании 2 нужно проделать не менее двух итераций применения законов развёртывания оператора .
Время выполнения: 4 дня.
Количество баллов: 30 баллов.
Образец решения
Задание 1
Формализуем 3 свойства процесса системы :
≡ ( ↓ ) − 1 ≤ ( ↓ ) ≤ ( ↓ ) + 1;
≡ (¬< 12, , , 12 > );
≡ ( ↓ 1) = ( ↓ 12) ( ↓ 2) = ( ↓ 21)
( ↓ ) ≤ ( ↓ ).
Задание 2
Пусть 1 ≡ , и 2 ≡ .
Пусть обозначает подпроцесс процесса, к которому применяется правило, и начинает строку, описывающую, какое правило применяется. Тогда
25
1 2 =
L7
→ | 1 → | 2 → =
L7
→ | 1 → (
→ ( → → ) _ | → _)
2 → .
•Самостоятельная работа № 7 по теме “Изменение символа. Многократное переименование”
Справочные материалы
Пусть – множество символов. Функция : → называется изменяющей функцией процесса , если – взаимно-однозначная функция.
Процесс получается из процесса переименованием (изменением символов) с помощью изменяющей функции , если
•= ( );
•( ) = { ( ) | ( )}.
Здесь ( ) обозначает образ { ( ) | } функции , ( ) обозначает последовательность, полученную в результате применения функции ко всем элементам последовательности . Такой процесс обозначается как ( ).
Базовые задания
1)Определить все процессы своей системы, которые получаются друг из друга изменением символов.
2)Записать одну изменяющую функцию.
3)Построить полное описание своей параллельной системы с использованием переименования.
Задания повышенной сложности
1)Записать модифицированный процесс . Модификация заключается в изменении поведения официанта таким образом, что, помогая философу сесть, он ждет, пока философ не возьмет обе вилки, прежде чем официант позволит кому-либо из его соседей сесть.
2)Доказать, что модифицированный процесс гарантирует сытость философов.
26
Параметры задания
Время выполнения: 4 дня.
Количество баллов: 10 баллов.
Дополнительные баллы: За задание 1 повышенной сложности 5 баллов. За задание 2 повышенной сложности 10 баллов.
Образец решения
Задание 1
Для системы имеется две группы таких процессов:
1)1, 12, 2, 21, ;
2)1_ , 12_ , 2_ , 21_ , _ .
Задание 2
Функция переименования 1 такая, что 1 = 1( ), определяется следующим образом:
•1( ) = 1,
•1( ) = 1,
•1( ) = 1,
•1( ) = 1.
Задание 3
Система задается параллельной композицией следующих процессов:
≡ _ _ 1(_) 2(_) 12(_) 21(_).
Функции 2, 12 и 21 определяются аналогично функции 1.
27
Самостоятельная работа № 8 по теме “Спецификации. Недетерминизм”
Справочные материалы
Достаточное условие отсутствия дедлока
L2. Если и никогда не останавливаются, и | ∩ | ≤ 1, то никогда не останавливается.
Сильный и слабый недетерминизмы
Окружением процесса является любой процесс, выполняемый параллельно с ним.
Процесс ведет себя либо как процесс , либо как процесс . Выбор между ними является произвольным и не зависит от окружения. Оператор называется оператором сильного недетерминизма.
Если процесс имеет вид 1 → 1 | . . . | → , то множество {1, . . . , } называется меню процесса, а события из этого множества называются изначально предлагаемыми или допускаемыми событиями этого процесса.
Процесс □ ведет себя либо как процесс , либо как процесс . Выбор между ними может контролироваться окружением. Этот контроль осуществляется на первом допускаемом событии:
1)Если это событие не является первым допускаемым событием , то выбирается.
2)Если это событие не является первым допускаемым событием , то выбирается.
3)Если это событие является первым допускаемым событием как , так и , то выбор между и недетерминированный, как в случае оператора .
4)Если событие не является первым допускаемым событием ни и ни , то оно не допускается процессом □ . Окружение может контролировать выполнение процесса □ через допускаемые события, удовлетворяющие свойствам 1 и 2.
Спецификация процесса с учетом отказа
Пусть – набор событий, предлагаемых изначально окружением процесса . Множество называется отказом процесса , если может зайти в тупик (дедлок) сразу на первом шаге, если поместить его в окружение .
Пусть ( ) обозначает множество отказов процесса .
Спецификация процесса с учетом отказа определяется как формула, зависящая от переменных , принимающей в качестве значения допустимые трассы этого процесса, и , обозначающей произвольное множество отказов процесса.
Процесс удовлетворяет спецификации (обозначается как ), если
( ( ) ( ) ).
28
Базовые задания
1)Перечислить все пары процессов своей системы, параллельная комбинация которых точно не имеет тупиков (deadlocks) и обосновать выбор пар.
2)Записать процесс пользователя (внешней среды), используя сильный недетерминированный выбор.
3)Записать спецификацию недетерминированного процесса пользователя (среды) с учётом отказов. Достаточно, чтобы алфавиты окружения среды и самой среды пересекались (совпадение алфавитов необязательно).
Задания повышенной сложности
1)Записать процесс пользователя (внешней среды), используя сильный недетерминированный выбор и хотя бы один слабый недетерминированный выбор.
Параметры задания
Время выполнения: 4 дня.
Количество баллов: 20 баллов.
Дополнительные баллы: За решение задания повышенной сложности вместо задания 2 добавляются 5 баллов.
Образец решения
Задание 1
Для пар
( , ), ( , ), ( , ), ( , ), ( , ),
где ≠ и , {1,2,12,21}, выполняется закон L2. Поэтому их параллельная композиция не имеет дедлоков.
Аналогичные пары можно составить из соответствующих инициализирующих процессов. Например,
(_, _), (_, ), (_, ),
и т. п.
29
Задание 2
Определим алфавит процесса :
≡ { , 1, 2, 12, 21,
, }.
CSP-спецификация этого процесса определяется следующим образом:
_ = → ;
= _ 1 → (
_
→ → → 12) 2 → (
_
→ → → 21);
12 = 12 → → ( 21);
21 = 21 → → ( 12);
= → → _.
Задание 3
Сформулируем следующую спецификацию процесса , учитывающую отказы:
≡ ↓ > ↓ .
30
