- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
при помощи процессов-посредников, т.е. программы взаимодействуют друг с другом через посредство некоторых процессов, которые синхронно взаимодействуют с каждой из программ.
Взаимодействие между параллельно работающими программами обычно реализуется одним из следующих двух способов.
1. Взаимодействие через общую память.
В данном случае такими посредниками являются ячейки памяти, к которым имеют доступ обе программы.
Взаимодействие может осуществляться, например, так: одна программа пишет информацию в эти ячейки, а другая читает содержимое ячеек.
2.Взаимодействие путем посылки сообщений.
Вданном случае посредником является канал, с которым программы могут осуществлять следующие операции:
•посылка сообщения в канал передающей программой,
и
•приём сообщения принимающей программой.
Канал может представлять собой буфер, хранящий несколько сообщений. Сообщения в канале могут быть организованы по принципу очереди (т.е. сообщения покидают канал в том же порядке, в котором они в него поступают).
3.5Ограничение
Пусть P = (S, s0, R) некоторый процесс, и L – произвольное подмножество множества Names.
Ограничением P по L называется процесс
P \ L = (S, s0, R0)
который получается из P удалением тех переходов, которые имеют метки с именами из L, т.е.
R0 = ( |
( s |
a |
- s0 |
) R |
name(a) L ) |
||
def |
|
|
|
|
a = τ, |
или |
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
52
Операция ограничения используется, как правило, совместно с операцией параллельной композиции для представления таких процессов, которые
•состоят из нескольких компонентов, и
•взаимодействие между этими компонентами должно удовлетворять некоторым ограничениям.
Например, пусть P1 и P2 – торговый автомат и покупатель, которые рассматривались в предыдущем параграфе.
Мы хотели бы описать процесс, являющийся моделью такого параллельного функционирования процессов P1 и P2, при котором эти процессы могут совершать действия, связанные с поку- пкой-продажей шоколадки, только совместно.
Искомый процесс может быть получен из процесса P1|P2 применением операции ограничения по множеству имён всех действий, которые связаны с покупкой-продажей шоколадки, т.е. данный процесс описывается выражением
def |
|P2) \ {мон, шок} |
(3.10) |
P = (P1 |
Графовое представление процесса (3.10) имеет вид
|
|
|
|
|
|
|||
@ |
|
|
||||||
|
|
|
|
|
|
|
||
(s10, s20) |
(s10, s21) |
(s10, s22) |
||||||
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
||
@ |
τ |
|
|
|
||||
@ |
|
|
|
|
|
|||
|
|
|
@ |
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
R@ |
|
|
|
|
|
|
@ |
|
||||||
(s11, s20) |
(s11, s21) |
(s11, s22) |
||||||
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
@@τ |
|
|
|
|
|
|
@ |
@ |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
@R |
|
|
|
|
|
||||||
(s12, s20) |
(s12, s21) |
(s12, s22) |
||||||
|
|
|
|
|
|
|
|
|
53
После удаления недостижимых состояний получится процесс,
имеющий следующее графовое представление:
(s10, s20) τ -(s11, s21) τ -(s12, s22)
Рассмотрим другой пример. Немного изменим определения торгового автомата и покупателя: пусть они еще и сигнализируют об успешном выполнении своей работы, т.е. их процессы имеют, например, следующий вид:
def
P1 = мон?.шок!.звяк!.0
def
P2 = мон!.шок?.ура!.0
В этом случае графовое представление процесса (3.10) после удаления недостижимых состояний имеет вид
|
|
|
|
|
звяк! |
|
|
|
τ |
- |
τ |
- |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ура! |
|
|
ура! |
|
|
|
|
? |
звяк! |
- ? |
|
|
|
|
|
|
|
|
Данный процесс допускает исполнение тех невнутренних действий, которые не связаны с покупкой и продажей шоколадки.
Отметим, что в данном случае в процессе (3.10) присутствует недетерминизм, хотя в компонентах P1 и P2 его нет. Причиной возникновения этого недетерминизма является наше неполное знание о моделируемой системе: поскольку мы не имеем точных знаний о длительности действий звяк! и ура!, то модель системы должна допускать любой порядок их выполнения.
54
3.6Переименование
Следующая операция, которую мы рассмотрим - это унарная операция переименования.
Для задания этой операции необходимо определить функцию
f : Names → Names
называемую переименованием.
Действие данной операции на процесс P заключается в изменении меток переходов:
•метки вида α? заменяются на f(α)?, и
•метки вида α! заменяются на f(α)!
Получившийся процесс обозначается знакосочетанием P [f]. Если переименование f действует нетождественно лишь на
имена из списка
α1, . . . , αn
и отображает их в имена
β1, . . . , βn
соответственно, то для P [f] мы будем иногда использовать эквивалентное обозначение
P [β1/α1, . . . , βn/αn]
Операция переименования позволяет многократно использовать один и тот же процесс P в качестве компоненты при построении более сложного процесса P 0. Эта операция используется для предотвращения “конфликтов” между именами действий, используемых в различных вхождениях P в P 0.
3.7Свойства операций на процессах
В этом параграфе мы приводим некоторые простейшие свойства определённых выше операций на процессах. Все эти свойства
55
имеют вид равенств. Для первых двух свойств мы даём их обоснование, остальные свойства приводятся без комментариев ввиду их очевидности.
Напомним (см. параграф 2.7), что мы считаем два процесса равными, если
•они изоморфны, или
•один из этих процессов можно получить из другого путём удаления некоторых недостижимых состояний и связанных с ними переходов.
1.Операция + ассоциативна, т.е. для любых процессов P1, P2 и P3 верно равенство
(P1 + P2) + P3 = P1 + (P2 + P3)
Действительно, пусть процессы Pi (i = 1, 2, 3) имеют вид
Pi = (Si, s0 |
, Ri) (i = 1, 2, 3) |
(3.11) |
i |
|
|
причём множества состояний S1, S2 и S3 попарно не пересекаются. Тогда обе части данного равенства равны процессу P = (S, s0, R), компоненты которого определяются следующим образом:
• |
def |
S2 |
S3 {s0}, где s0 – новое состояние, не |
S = S1 |
входящее в S1, S2 и S3
•R содержит все переходы из R1, R2 и R3
•для каждого перехода из Ri (i = 1, 2, 3) вида
0 |
|
a - |
|
|
|
si |
a - |
|
|
s |
|
R содержит переход s0 |
|
s |
|||
|
|
Из свойства ассоциативности операции + следует, что допустимы выражения вида
P1 + . . . + Pn |
(3.12) |
56
так как при любой расстановке скобок в выражении (3.12) получится один и тот же процесс.
Процесс, являющийся значением выражения (3.12) можно описать явно следущим образом.
Пусть процессы Pi (i = 1, . . . , n) имеют вид |
|
Pi = (Si, si0, Ri) (i = 1, . . . , n) |
(3.13) |
причём множества состояний S1, . . . , Sn попарно не пересекаются. Тогда процесс, являющийся значением выражения
(3.12), имеет вид
P = (S, s0, R)
где компоненты S, s0, R определяются следующим образом:
• |
def |
. . . Sn {s0}, где s0 – новое состояние, не |
S = S1 |
входящее в S1, . . . , Sn
•R содержит все переходы из R1, . . . , Rn
•для каждого перехода из Ri (i = 1, . . . , n) вида
0 |
|
a - |
|
|
|
si |
a - |
|
|
s |
|
R содержит переход s0 |
|
s |
|||
|
|
2.Операция | ассоциативна, т.е. для любых процессов P1, P2 и P3 верно равенство
(P1 | P2) | P3 = P1 | (P2 | P3)
Действительно, пусть процессы Pi (i = 1, 2, 3) имеют вид (3.11). Тогда обе части данного равенства равны процессу P = (S, s0, R) компоненты которой определяются следующим образом:
S def |
S |
1 × |
S |
2 × |
S |
|
|
• def |
= |
|
|
|
3 |
||
= |
{(s1, s2, s3) | s1 |
||||||
• s0 |
def |
|
|
|
|
|
|
= (s10, s20, s30) |
|
|
def
=
S1, s2 S2, s3 S3}
• для
57
– каждого перехода s1 |
a - |
s0 из R1, и |
||
|
|
|||
|
|
1 |
||
– каждой пары состояний s2 S2, s3 S3 |
||||
R содержит переход |
|
|
|
|
(s1, s2, s3) |
|
a - |
(s0 , s2, s3) |
|
|
|
|||
|
|
1 |
• для
– каждого перехода s2 a - s02 из R2, и
– каждой пары состояний s1 S1, s3 S3
R содержит переход
(s1, s2, s3) |
|
a - |
(s1, s0 |
, s3) |
||
|
|
|||||
|
|
2 |
|
|||
• для |
a - |
|
|
|||
– каждого перехода s3 |
s0 из R3, и |
|||||
|
||||||
|
|
3 |
|
|||
– каждой пары состояний s1 S1, s2 S2 |
||||||
R содержит переход |
|
|
|
|
||
(s1, s2, s3) |
|
a - |
(s1, s2 |
, s0 ) |
||
|
|
|||||
|
|
|
|
|
3 |
•для
–каждой пары переходов с комплементарными мет-
ками |
|
|
a - |
s0 |
|
|
|
|
s |
1 |
|
R |
1 |
||||
|
|
|||||||
|
|
|
1 |
|
||||
|
|
|
a |
|
|
|||
s |
2 |
|
|
- |
s0 |
|
R |
2 |
|
|
|
||||||
|
|
|
2 |
|
и
– каждого состояния s3 S3
R содержит переход
(s1, s2, s3) |
τ - |
(s0 |
, s0 |
, s3) |
|
||||
|
1 |
2 |
|
•для
–каждой пары переходов с комплементарными мет-
ками |
|
|
a - |
s0 |
|
|
|
|
s |
1 |
|
R |
1 |
||||
|
|
|||||||
|
|
|
1 |
|
||||
|
|
|
a |
|
|
|||
s |
3 |
|
|
- |
s0 |
|
R |
3 |
|
|
|
||||||
|
|
|
3 |
|
и
58
– каждого состояния s2 S2
R содержит переход
(s1, s2, s3) |
τ - |
(s0 |
, s2 |
, s0 |
) |
|
|||||
|
1 |
|
3 |
|
•для
–каждой пары переходов с комплементарными мет-
ками |
|
|
|
a - |
s0 |
|
|
|
|
|
||
s |
2 |
|
|
R |
2 |
|
||||||
|
|
|
|
|||||||||
|
|
|
|
2 |
|
|
|
|||||
|
|
|
|
a |
|
|
|
|
||||
s |
3 |
|
|
|
- |
s0 |
|
R |
3 |
|
||
|
|
|
|
|
||||||||
и |
|
|
|
3 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
– каждого состояния s1 S1 |
|
|
|
|
|
|||||||
R содержит переход |
|
|
|
|
|
|
|
|
|
|
|
|
(s1, s2, s3) |
|
|
τ - |
(s1 |
, s0 |
, s0 |
) |
|||||
|
|
|
||||||||||
|
|
|
|
|
|
|
|
2 |
|
3 |
|
|
Из свойства ассоциативности операции | |
следует, что до- |
|||||||||||
пустимы выражения вида |
|
|
|
|
|
|
|
|
|
|||
P1 | . . . | Pn |
|
|
|
|
(3.14) |
так как при любой расстановке скобок в выражении (3.14) получится один и тот же процесс.
Процесс, являющийся значением выражения (3.14) можно описать явно следущим образом.
Пусть процессы Pi (i = 1, . . . , n) имеют вид (3.13). Тогда процесс, являющийся значением выражения (3.14), имеет
вид
P = (S, s0, R)
где компоненты S, s0, R определяются следующим образом:
S |
def |
S |
1 × |
. . . |
× |
S |
def |
• def |
= |
|
|
|
n = |
||
= |
{(s1, . . . , sn) | s1 S1, . . . , sn Sn} |
||||||
• s0 |
def |
|
|
|
|
|
|
= (s10, . . . , sn0 ) |
|
• для
– каждого i {1, . . . , n}
59
– каждого перехода si |
|
a - |
s0 |
из Ri, и |
|
|
||||||||
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
– каждого списка состояний |
|
|
|
|
|
|
||||||||
|
|
|
|
s1, . . . , si−1, si+1, . . . , sn |
|
|
|
|||||||
где j {1, . . . , n} |
sj Sj |
|
|
|
|
|
|
|||||||
R содержит переход |
|
|
|
|
|
|
|
|
|
|||||
(s |
, . . . , s |
n |
) |
a - |
(s |
, . . . , s |
i−1 |
, s0, s |
i+1 |
, . . . , s |
n |
) |
||
|
||||||||||||||
1 |
|
|
|
|
1 |
|
|
i |
|
|
•для
–каждой пары индексов i, j {1, . . . , n}, где i < j
–каждой пары переходов с комплементарными мет-
ками |
|
|
a - |
|
s0 |
|
|
|
|
||
s |
i |
|
|
R |
i |
||||||
|
|
|
|
||||||||
|
|
|
|
- |
i |
|
|||||
|
|
|
a |
|
|
|
|||||
s |
j |
|
|
|
s0 |
|
R |
j |
|||
|
|
|
|
||||||||
|
|
|
|
|
|
j |
|
|
и
– каждого списка состояний
s1, . . . , si−1, si+1, . . . , sj−1, sj+1, . . . , sn
где k {1, . . . , n} sk Sk
R содержит переход
!
(s1, . . . , sn) τ - s1, . . . , si−1, s0i, si+1, . . . , sj−1, s0j, sj+1, . . . , sn
3.Операция + коммутативна, т.е. для любых процессов P1 и P2 верно равенство
P1 + P2 = P2 + P1
4.Операция | коммутативна, т.е. для любых процессов P1 и P2 верно равенство
P1 | P2 = P2 | P1
60
5.0 является нейтральным элементом относительно операции
| :
P | 0 = P
Для операции + аналогичное свойство тоже имеет место, если вместо равенства процессов будет использовано понятие сильной эквивалентности процессов (которое определяется ниже). Данное свойство, а также свойство идемпотентности операции + доказываются в параграфе 4.5 (теорема 4).
6.0 \ L = 0
7.0[f] = 0
8.P \ L = P , если L ∩ names(Act(P )) = .
(напомним, что Act(P ) обозначает множество действий a
Act \ {τ}, таких, что P содержит переход с меткой a)
(
9. (a.P ) \ L =
0, если a 6= τ и name(a) L a.(P \ L), иначе
10.(P1 + P2) \ L = (P1 \ L) + (P2 \ L)
11.(P1 | P2) \ L = (P1 \ L) | (P2 \ L), если
L ∩ names(Act(P1) ∩ Act(P2)) =
12.(P \ L1) \ L2 = P \ (L1 L2)
13.P [f] \ L = (P \ f−1(L))[f]
14.P [id] = P , где id – тождественная функция
15.P [f] = P [g], если сужения функций f и g на множество names(Act(P )) совпадают.
16.(a.P )[f] = f(a).(P [f])
17.(P1 + P2)[f] = P1[f] + P2[f]
61
18.(P1 | P2)[f] = P1[f] | P2[f], если сужение функции f на множество
names(Act(P1) Act(P2))
является инъективной функцией.
19.(P \ L)[f] = P [f] \ f(L), если f иньективна.
20.P [f][g] = P [g ◦ f]
62