- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
7.8Процессы с составными операторами
7.8.1Мотивировка понятия процесса с составными операторами
Сложность задачи анализа процесса существенно зависит от размера его описания (в частности, от количества состояний). Поэтому для построения эффективных алгоритмов анализа процессов необходим поиск методов понижения сложности описания анализируемых процессов. В этом параграфе мы рассматриваем один из таких методов.
Мы обобщаем понятие процесса до понятия процесса с составными операторами. Составной оператор является комбинацией нескольких обычных операторов. За счёт того, что мы объединяем последовательность обычных операторов в один составной, у нас появляется возможность исключить из описания процесса те состояния, в которых он находится на промежуточных шагах выполнения этой последовательности операторов.
Мы определяем понятие редукции процессов с составными операторами, с таким расчётом, чтобы при выполнении редукции получался процесс,
•имеющий менее сложное описание, и
•эквивалентный (в некотором смысле) исходному процессу.
Сиспользованием описанных выше понятий задача анализа процесса может решаться следующим образом.
1.Сначала мы сопоставляем исходному процессу P процесс P 0 с составными операторами, в некотором смысле совпадающий с P (говоря неформально, мы просто рассматриваем каждый оператор, входящий в P , как составной оператор).
2.Затем мы редуцируем P 0, получая процесс P 00, сложность которого может быть существенно меньше сложности исходного процесса P .
198
3.После этого мы выполняем анализ процесса P 00, и по результатам этого анализа мы составляем заключение о свойствах исходного процесса P .
7.8.2Понятие составного оператора
Составным оператором (СО) называется конечная последовательность Op операторов
Op = (op1, . . . , opn) (n ≥ 1) (7.16)
обладающая следующими свойствами:
1. op1 является оператором проверки условия,
формулу, входящую в этот оператор, мы будем обозначать знакосочетанием
cond (Op)
2.последовательность (op2, . . . , opn)
•не содержит операторов проверки условия, и
•содержит не более одного оператора ввода или вывода.
Пусть Op – некоторый СО.
•Op называется СО ввода (или вывода), если среди операторов, входящих в Op, есть оператор ввода (или вывода).
•Op называется внутренним, если все операторы, входящие в Op – внутренние.
•Если Op является СО ввода или вывода, то знакосочетание
name (Op)
обозначает имя, входящее в Op.
•Если ξ – некоторое означивание переменных, входящих в cond (Op), то мы будем говорить, что Op открыт на ξ, если
ξ(cond (Op)) = 1
199
7.8.3Понятие процесса с СО
Понятие процесса с СО отличается от понятия процесса из параграфа 7.3.4 только тем, что метки переходов у процесса с СО представляют собой СО.
7.8.4Функционирование процесса с СО
Функционирование процесса с СО
•определяется почти так же, как определяется функционирование процесса в параграфе 7.3.5, и
•тоже представляет собой обход множества его состояний (начиная с начального состояния), с выполнением СО, являющихся метками проходимых переходов.
Пусть P = (XP , IP , SP , s0P , RP ) - процесс с СО. На каждом шаге функционирования i ≥ 0
•процесс P находится в некотором состоянии si (s0 = s0P )
•определено некоторое означивание ξi переменных из XP
(ξ0(IP ) = 1, ξi(atP ) = si)
•если есть хотя бы один переход из RP с началом в si, то процесс
–недетерминированно выбирает переход с началом в si, помеченный таким СО Opi, который обладает следующими свойствами:
Opi открыт на ξi
если среди операторов, входящих в Opi, есть оператор вида
α? x или α ! e
то процесс P может в текущий момент времени выполнить действие вида
α ? v или α ! v
соответственно
200
(если таких переходов нет, то процесс временно приостанавливает свою работу до того момента, когда появится хотя бы один такой переход)
–выполняет последовательно все операторы, входящие в Opi, изменяя соответствующим образом текущее означивание после выполнения каждого оператора, входящего в Opi, и после этого
–переходит в состояние si+1, которое является концом выбранного перехода
•если в RP нет переходов с началом в si, то процесс заканчивает свою работу.
7.8.5Операции на процессах с СО
Определения операций на процессах с СО почти совпадают с соответствующими определениями из параграфа 7.6, поэтому мы лишь укажем отличия в этих определениях.
•В определениях всех операций на процессах с СО вместо операторов участвуют СО.
•Определение операции | отличается только в том пункте, в котором определяются “диагональные” переходы. Для процессов с СО данный пункт выглядит следующим образом:
для каждой пары переходов вида
s |
1 |
Op1- |
s0 |
|
R |
P1 |
|
Op2 |
1 |
|
|||
s |
2 |
- |
s0 |
|
R |
P2 |
|
||||||
|
|
2 |
|
где один из СО Op1, Op2 имеет вид
(op1, . . . , opi, α ? x, opi+1, . . . , opn)
а другой –
(op01, . . . , op0j, α ! e, op0j+1, . . . , op0m)
где
201