- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
Истинность неравенств, соответствующих диаграммам (7.42) для обоих элементов совокупности (7.41), следует из (7.46), (7.47) и теоремы 36.
7.9Рекурсивные определения процессов
Для процессов с передачей сообщений можно ввести понятие рекурсивного определения, которое аналогично понятию РО, изложенному в главе 5.
РО для процессов с передачей сообщений очень похожи на функциональные программы.
Понятие РО определяется на основе понятия процессного выражения (ПВ), которое почти совпадает с соответствующим понятием из параграфа 5.1, поэтому мы лишь укажем отличия
вопределениях этих понятий.
•Во всех ПВ вместо действий используются операторы.
•Каждое процессное имя A имеет тип t(A), который представляет собой последовательность обычных типов из T ypes:
t(A) = (t1, . . . , tn) (n ≥ 0)
•Каждое процессное имя A входит в каждое ПВ только вместе со списком выражений соответствующих типов, т.е. каждое вхождение процессного имени A в произвольное ПВ содержится в подвыражении вида
A(e1, . . . , en), где (t(e1), . . . , t(en)) = t(A)
Каждому ПВ P соответствует совокупность fv(P ) свободных переменных этого ПВ, которая состоит из всех переменных, имеющих свободные вхождения в P .
Понятие свободного и связанного вхождения переменной в ПВ определяется почти так же, как определяется аналогичное понятие в логике предикатов, только в случае ПВ роль кванторов играют операторы ввода и присваивания: каждое свободное вхождение переменной x в ПВ P становится связанным в ПВ
(α?x).P и в ПВ (x := e).P .
232
Рекурсивное определение (РО) процессов представляет собой список формальных равенств вида
|
A1(x11, . . . , x1k1 ) = P1 |
|
|
|
|
|
. . . |
(7.48) |
|
An(xn1, . . . , xnkn ) = Pn |
|
|
|
|
где
•A1, . . . , An – процессные имена,
•для каждого i = 1, . . . , n список (xi1, . . . , xiki ) в левой части i–го равенства представляет собой список различных
переменных
•P1, . . . , Pn – ПВ, которые удовлетворяют
–условиям, изложенным в определении РО в параграфе 5.2,
–а также следующему условию: для каждого i = 1, . . . , n
совокупность {xi1, . . . , xiki } совпадает с совокупностью fv(Pi) свободных переменных ПВ Pi.
РО (7.48) можно интерпретировать как функциональную программу, состоящую из рекурсивных определений функций
A1(x11, . . . , x1k1 ), . . . , An(xn1, . . . , xnkn )
Для каждого i = 1, . . . , n переменные xi1, . . ., xiki можно рассматривать как формальные параметры функции Ai(xi1, . . . , xiki ).
Читателю предлагается самостоятельно определить соответствие, которое сопоставляет каждому ПВ вида A(x1, . . . , xn), где
•A – процессное имя, и
•x1, . . . , xn – список различных переменных соответствующих типов
процесс [[A(x1, . . . , xn)]].
Примеры процессов, задаваемых в виде РО, будут изложены в главе 9.
Проблемы, связанные с РО в случае процессов с передачей сообщений, имеют тот же вид, что и для обычных РО:
233
•распознавание существования конечных процессов, эквивалентных процессам вида [[A(x1, . . . , xn)]]
•построение алгоритмов нахождения минимальных процессов, эквивалентных процессам вида [[A(x1, . . . , xn)]] в том случае, когда эти процессы конечны
•распознавание эквивалентности процессов вида [[A(x1, . . . , xn)]]
•распознавание эквивалентности РО
•нахождение необходимых и достаточных условий единственности списка процессов, определяемого РО.
234