Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория параллелизма. Самостоятельные работы. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
986 Кб
Скачать

12 =    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