- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
–t(x) = t(e),
–подпоследовательности
(opi+1, . . . , opn) и (op0j+1, . . . , op0m)
могут быть пустыми процесс P1 | P2 содержит переход
(s1, s2) Op- (s01, s02)
где Op имеет вид |
|
, |
|
|
op2 |
, . . . , opi |
|
||
(cond (Op1) |
cond (Op2)) ?, |
|
||
op20 |
, . . . , opj0 |
, |
|
|
|
|
|
|
|
(x := e), |
|
|
|
|
|
|
|
|
|
opi+1, . . . , opn, |
|
|||
|
|
|
|
|
|
|
|
|
|
opj0 +1, . . . , opm0 |
|
|||
|
|
|
|
|
7.8.6Преобразование процессов с передачей сообщений в процессы с СО
Каждый процесс с передачей сообщений можно преобразовать в процесс с СО путём замены меток его переходов: для каждого
перехода
s1 op - s2
его метка op заменяется на СО Op, определяемый следующим образом.
• Если op – оператор проверки условия, то
def
Op = (op)
• Если op – оператор присваивания, ввода или вывода, то
def
Op = (>? , op)
где > – тождественно истинная формула.
Для каждого процесса с передачей сообщений P мы будем обозначать соответствующий ему процесс с СО тем же символом
P .
202
7.8.7Конкатенация СО
В этом параграфе мы вводим понятие конкатенации СО: для некоторых пар СО (Op1, Op2) мы определяем СО, обозначаемый знакосочетанием
Op1 · Op2 |
(7.17) |
и называемый конкатенацией Op1 и Op2.
СО (7.17) отражает идею последовательного выполнения операторов из Op1 и Op2: в (7.17)
•сначала выполняются операторы, входящие в Op1,
•а затем - операторы, входящие в Op2.
Необходимым условием для того, чтобы можно было определить конкатенацию (7.17), является условие того, чтобы хотя бы один из СО Op1, Op2 был внутренним.
Ниже мы будем использовать следующие обозначения.
1.Для каждого
•СО Op = (op1, . . . , opn), и
•оператора присваивания op
знакосочетание Op · op обозначает СО
(op1, . . . , opn, op) |
(7.18) |
2.Для каждого
•внутреннего СО Op = (op1, . . . , opn), и
•оператора ввода или вывода op
знакосочетание Op · op обозначает СО (7.18)
3.Для каждого
•СО Op = (op1, . . . , opn), и
•оператора проверки условия op = b?
знакосочетание Op · op обозначает объект, который
203
•либо является СО,
•либо не определён.
Данный объект определяется рекурсивно следующим образом.
Если n = 1, то
def
Op · op = ((cond (Op) b) ?)
иначе –
• если opn – оператор присваивания вида (x := e), то
def |
, . . . , opn−1) · opn(op)) ·opn |
||||
Op · op = ((op1 |
|||||
| |
|
|
{z |
|
} |
|
|
( ) |
|
где
–opn(op) – оператор проверки условия, получаемый из op заменой всех вхождений в него переменной x на выражение e
–если объект ( ) не определён, то Op · op тоже не определён
•если opn – оператор вывода, то Op · op есть СО
((op1, . . . , opn−1) · op) · opn |
(7.19) |
•если opn – оператор ввода, и имеет вид α ? x, то Op · op
–не определён, если op зависит от x
–равен СО (7.19), в противном случае.
Теперь можно сформулировать определение конкатенации СО. Пусть заданы два СО Op1, Op2, причём Op2 имеет вид
Op2 = (op1, . . . , opn)
Мы будем говорить, что определена конкатенация СО Op1 и Op2, если выполнены следующие условия:
• хотя бы один из СО Op1, Op2 является внутренним
204
• определены все объекты в скобках в выражении
(. . . ((Op1 · op1) · op2) · . . .) · opn |
(7.20) |
Если эти условия выполнены, то конкатенацией Op1 и Op2 называется СО
Op1 · Op2
который равен значению выражения (7.20).
7.8.8Редукция процессов с СО
Пусть P - процесс с СО.
Редукция процесса P представляет собой последовательность
P = P0 |
- |
P1 |
- |
. . . |
- |
Pn |
(7.21) |
|
|
|
преобразований этого процесса, каждое из которых производится согласно какому-либо из излагаемых ниже правил. Каждое из этих преобразований (кроме первого) производится над результатом предыдущего преобразования.
Результатом редукции (7.21) является результат последнего из преобразований (т.е. процесс Pn).
Правила редукции имеют следующий вид.
Правило 1 (конкатенация).
Пусть s – некоторое состояние процесса с СО, которое не является начальным, и
•совокупность всех переходов этого процесса с концом s имеет вид
s1 Op1- s, . . . , sn Opn- s
•совокупность всех переходов этого процесса с началом s имеет вид
|
Op0 |
Op0 |
||
s |
1- |
s10 , . . . , s |
m- |
sm0 |
|
|
• s 6 s{1, . . . , sn, s01, . . . , s0m}
205
•для каждого i = 1, . . . , n и каждого j = 1, . . . , m определена конкатенация
Opi · Opj
Тогда данный процесс можно преобразовать в процесс,
•состояниями которого являются состояния исходного процесса, за исключением s
•переходами которого являются
–те переходы исходного процесса, началом или концом которых не является s,
–а также переходы вида
si |
· |
j- s0 |
|
|
Opi |
Op0 |
|
|
|
|
j |
для каждого i = 1, . . . , n и каждого j = 1, . . . , m
•– начальное состояние которого, а также
–множество переменных, и
–начальное условие
совпадают с соответствующими компонентами исходного процесса.
Правило 2 (склейка).
Пусть P – процесс с СО, который содержит два перехода с общим началом и общим концом
|
Op |
- |
|
|
|
Op0 |
|
|
s1 |
|
s2 |
, |
s1 |
- |
s2 |
(7.22) |
|
|
|
|
причём метки этих переходов различаются только в первой компоненте, т.е. Op и Op0 имеют вид
Op = (op1, op2, . . . , opn)
Op0 = (op01, op2, . . . , opn)
Правило 2 заключается в замене пары переходов (7.22) на
один переход вида
s1 Op- s2
где Op = ((cond (Op) cond (Op0)) ?, op2, . . . , opn)
206