- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
2.3Действия
Для задания процесса P , представляющего собой модель поведения некоторой динамической системы, должно быть указано некоторое множество Act(P ) действий, которые может выполнять процесс P .
Мы будем предполагать, что действия всех процессов являются элементами некоторого универсального множества Act всех возможных действий, которые может выполнить какой-либо процесс, т.е. для любого процесса P
Act(P ) Act
Выбор множества Act(P ) действий процесса P зависит от целей моделирования. В разных ситуациях для представления модели анализируемой системы в виде некоторого процесса могут выбираться разные множества действий.
Мы будем предполагать, что множество действий Act делится на 3 следующих класса.
1.Входные действия, которые изображаются знакосочетаниями вида
α?
Действие вида α? интерпретируется как ввод в процесс некоторого объекта с именем α.
2.Выходные действия, которые изображаются знакосочетаниями вида
α!
Действие вида α! интерпретируется как вывод из процесса некоторого объекта с именем α.
3.Внутреннее (или невидимое) действие, которое обозначается символом τ.
Внутренним мы называем такое действие процесса P , которое не связано с его взаимодействием с окружающей средой (т.е. с процессами, являющимися внешними по отношению к процессу P , и с которыми он может взаимодействовать).
19
Например, внутреннее действие может быть связано с взаимодействием компонентов процесса P .
В действительности, внутренние действия могут быть самыми разнообразными, но для обозначения всех внутренних действий мы будем использовать один и тот же символ τ. Это отражает наше желание не различать все внутренние действия, т.к. они не являются “наблюдаемыми” извне процесса P .
Обозначим знакосочетанием Names совокупность имён объектов, которые могут вводиться в какой-либо процесс нли выводиться из него.
Мы не накладываем никаких ограничений на виды объектов, с которыми могут оперировать процессы, поэтому множество Names предполагается бесконечным.
Множество Act по определению представляет собой дизъюнкное объединение
Act = {α? | α Names}
{α! | α Names}
{τ}
(2.1)
Отметим, что объекты, которые вводятся в процесс и выводятся из него, могут иметь самую различную природу (как материальную, так и не материальную). Например, ими могут быть
•материальные ресурсы,
•люди,
•деньги,
•информация,
•энергия,
•и т.д.
Кроме того, сами понятия ввода и вывода могут иметь виртуальный характер, т.е. слова “ввод” и “вывод” могут использоваться лишь как метафоры, а в действительности никакого ввода или
20
вывода какого-либо реального объекта может и не происходить. Говоря неформально, мы будем рассматривать действие процесса P как
•входное, если его инициатором является процесс, внешний по отношению к P , и
•выходное, если оно не является внутренним, и его инициатором является сам процесс P .
Для каждого имени α Names действия α? и α! называются
комплементарными.
Мы будем использовать следующие обозначения.
1.Для каждого действия a Act \ {τ} знакосочетание a¯ обозначает действие, комплементарное к a, т.е.
def def
α? = α!, α! = α?
2.Для каждого действия a Act\{τ} знакосочетание name(a) обозначает имя, указанное в действии a, т.е.
def def
name(α?) = name(α!) = α
3. Для каждого подмножества L Act \ {τ}
def
• L = {a | a L}
def
• names(L) = {name(a) | a L}
2.4 Определение понятия процесса
Процессом называется тройка P вида
P = (S, s0, R) |
(2.2) |
компоненты которой имеют следующий смысл.
•S - множество, элементы которого называются состояниями процесса P .
21
•s0 S – некоторое выделенное состояние, называемое начальным состоянием процесса P .
•R – подмножество вида
R S × Act × S
Элементы множества R называются переходами. Если переход из R имеет вид (s1, a, s2), то
–мы будем говорить, что этот переход является переходом из состояния s1 в состояние s2 с выполнением действия a,
–состояния s1 и s2 называются началом и концом этого перехода соответственно, а действие a называется меткой этого перехода, и
–иногда, в целях повышения наглядности, мы будем обозначать данный переход знакосочетанием
s1 |
a - |
s2 |
(2.3) |
|
Функционирование процесса P = (S, s0, R) заключается в порождении последовательности переходов вида
s0 a0 - s1 a1 - s2 a2 - . . .
и выполнении действий a0, a1, a2 . . ., соответствующих этим переходам.
Более подробно: на каждом шаге функционирования i ≥ 0
•процесс находится в некотором состоянии si (s0 = s0),
•если есть хотя бы один переход из R с началом в si, то процесс
–недетерминированно выбирает переход с началом в si, помеченный таким действием ai, которое можно выполнить в текущий момент времени, (если таких переходов нет, то процесс временно при-
останавливает свою работу до того момента, когда появится хотя бы один такой переход)
22