- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
Глава 5
Рекурсивные определения процессов
В некоторых случаях процесс удобнее задавать не явным описанием множеств его состояний и переходов, а при помощи рекурсивного определения.
5.1Процессные выражения
Для того, чтобы сформулировать понятие рекурсивного определения процессов, мы введём понятие процессного выражения.
Множество P Expr процессных выражений (ПВ) определяется индуктивно, т.е.
•указываются элементарные ПВ, и
•описываются правила построения новых ПВ из уже имеющихся.
Каждое из правил построения ПВ имеет своё название, которое указывается жирным шрифтом перед описанием этого правила.
процессные константы:
Мы будем предполагать, что задано счётное множество процессных констант, причём каждой процессной константе
127
сопоставлен некоторый процесс, называемый значением этой константы.
Существует процессная константа, значением которой является пустой процесс 0, эта константа обозначается тем же символом 0.
Каждая процессная константа является ПВ.
процессные имена:
Мы будем предполагать, что задано счётное множество процессных имён.
Каждое процессное имя является ПВ.
префиксное действие:
Для каждого a Act и каждого ПВ P знакосочетание a.P является ПВ.
выбор:
Для любых ПВ P1, P2 знакосочетание P1 + P2 является ПВ.
параллельная композиция:
Для любых ПВ P1, P2 знакосочетание P1 | P2 является ПВ.
ограничение:
Для каждого подмножества L Names и каждого ПВ P знакосочетание P \ L является ПВ.
переименование:
Для каждого переименования f и каждого ПВ P знакосочетание P [f] является ПВ.
5.2Понятие рекурсивного определения процессов
Рекурсивным определением (РО) процессов называется список формальных равенств вида
A1 = P1
. . . (5.1)
An = Pn
128
где
•A1, . . . , An – различные процессные имена, и
•P1, . . . , Pn – ПВ, удовлетворяющие следующему условию: для каждого i = 1, . . . , n каждое процессное имя, входящее в Pi, совпадает с одним из имён A1, . . . , An.
Мы будем предполагать, что каждому процессному имени соответствует единственное РО, в котором это имя является левой частью одного из равенств.
В параграфе 5.5 мы определим соответствие, которое сопоставляет каждому ПВ P некоторый процесс [[P ]]. Для определения этого соответствия мы сначала изложим
•понятие вложения процессов, и
•понятие предела последовательности вложенных процессов.
атакже утверждения, связанные с этими понятиями.
5.3Вложение процессов
Пусть заданы два процесса
Pi = (Si, s0i , Ri) (i = 1, 2)
и f – инъективное отображение из S1 в S2.
Мы будем говорить, что f является вложением P1 в P2, если
•f(s01) = s02, и
•для любых s0, s00 S1 и любого a Act
(s0 |
a |
|
a |
→ s00) R1 |
(f(s0) → f(s00)) R2 |
Для каждой пары процессов P1, P2 знакосочетание
P1 ,→ P2
является сокращённой записью утверждения о том, что существует вложение P1 в P2.
Теорема 27. Пусть P1 ,→ P2. Тогда
129
•a.P1 ,→ a.P2
•P1 + P ,→ P2 + P
•P1 | P ,→ P2 | P
•P1 \ L ,→ P2 \ L, и
•P1[f] ,→ P2[f].
Ниже мы рассматриваем выражения, построенные из процессов, и символов операций над процессами (a., +, | , \L, [f]). Понятие такого выражения отличается от понятия ПВ, и мы называем такие выражения выражениями над процессами. Для каждого выражения над процессами определён процесс, являющийся значением этого выражения. В нижеследующих рассуждениях мы будем обозначать выражение над процессами и его значение одним и тем же символом.
Теорема 28. Пусть
• P – выражение над процессами, в которое входят процессы
|
|
|
|
P1, . . . , Pn |
||
• для каждого |
i = 1, . . . , n P |
, P 0 |
||||
|
i → |
i , и |
||||
• P 0 |
– выражение, получаемое из P заменой для каждого |
|||||
i = 1, . . . , n каждого вхождения процесса Pi на соответ- |
||||||
ствующий процесс Pi0. |
|
|
||||
Тогда |
P , P 0 |
. |
|
|
|
|
|
→ |
|
|
|
Доказательство.
Данная теорема доказывается индукцией по структуре выражения P : мы докажем, что для каждого подвыражения Q выражения P верно утверждение
Q ,→ Q0 |
(5.2) |
где Q0 – подвыражение выражения P 0, которое соответствует подвыражению Q .
130