
- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
Это означает, что имеет место соотношение
Job_Shop ≈ Abs_Job_Shop |
(6.4) |
Поскольку из начальных состояний процессов
Job_Shop и Abs_Job_Shop
не выходит рёбер с меткой τ, то отсюда и из (6.4) следует искомое соотношение (6.2).
6.3Неконфликтное использование ресурса
Предположим, что имеется некоторая фирма, сотрудники которой объединены в несколько групп.
В здании, где работает фирма, выделена одна комната, которую каждая из групп может использовать для проведения своих рабочих совещаний.
Предположим, что необходимо обеспечить неконфликтное использование этой комнаты группами. Это означает, что когда одна из групп проводит в комнате совещание, другой группе должно быть запрещено проводить своё совещание в этой комнате.
Для решения этой задачи создаётся специальный процесс –
диспетчер.
Если какая-либо из групп хочет провести совещание в этой комнате, она должна послать диспетчеру заявку на предоставление ей права пользования комнатой для проведения этого совещания.
Когда диспетчер разрешает какой-либо группе использовать комнату, он посылает ей уведомление об этом.
Окончив совещание, группа должна сообщить об этом диспетчеру, чтобы диспетчер знал, что комната стала свободной и доступна для других групп.
Рассмотрим описание работы указанной системы при помощи теории процессов.
Пусть число групп равно n (n ≥ 2).
147

reqi ? |
@@ reli ? |
|
@ |
@
? acq ! @@di1 i - di2
т.е.
n
X
D reqi?. acqi!. reli?. D
i=1
Действия, входящие в Act(D), имеют следующий смысл:
•reqi? – получение заявки от i-й группы
•acqi! – уведомление i-й группы о том, что она имеет право пользоваться комнатой
•reli? – получение сообщения от i-й группы об освобождении ею комнаты.
Опишем теперь поведение каждой группы.
(Мы будем описывать только взаимодействие групп с диспетчером и с комнатой, и не будем касаться прочих их функций).
Мы будем представлять
•начало проведения совещания в комнате действием start!,
и
•окончание совещания - действием finish!.
148

Поведение i-й группы мы опишем в виде процесса Gi, который имеет следующее графовое представление:
|
reli! |
|
|||
gi0 |
|
|
gi4 |
|
|
|
|
|
|
||
|
|
6 |
|||
|
|
|
finishi! |
||
|
|
|
6 |
||
reqi! |
|
gi3 |
|
||
gi1 |
acqi? |
- gi2 |
|
||
? |
|
|
|
starti! |
|
|
|
|
|||
|
|
т.е. Gi reqi!. acqi?. start!. finish!. reli!. Gi.
Совместное поведение диспетчера и групп можно описать следующим процессом:
Sys = (D | G1 | . . . | Gn) \ L
где L = {reqi, acqi, reli | i = 1, . . . , n}.
Потоковый граф системы, состоящей из диспетчера и групп для n = 2 показан на рисунке
'u |
$1 |
' $2 |
'u |
$ |
||||||||
|
start |
|
|
|
|
|
|
|
start |
|
|
|
|
|
u |
rel |
- e |
|
e |
|
u |
|
|
|
|
|
|
|
|
|
|
rel |
|
|
|
|
|
|
|
G1 |
e acq1 |
|
u |
D u acq2 |
- e G2 |
|
|
||||
|
|
u |
req1 |
- e |
|
e req2 |
|
u |
|
|
||
&uf |
% & |
% |
&u |
% |
||||||||
|
inish |
|
|
|
|
|
|
|
finish |
|
|
Покажем теперь, что алгоритмы работы диспетчера и групп действительно обеспечивают неконфликтный режим использования комнаты, который заключается в том, что после начала проведения совещания в комнате какой-либо группой (то есть после выполнения этой группой действия start!) никакая другая
149

группа не может начать проводить в этой комнате своё совещание (т.е. тоже выполнить действие start!), до тех пор первая группа не закончит своё совещание (т.е. пока не будет выполнено действие finish!).
Определим процесс Spec следующим образом:
start!finish! -
т.е. Spec start!. finish!. Spec.
Наличие неконфликтного режима использования комнаты эквивалентно истинности соотношения
Sys ≈ Spec |
(6.5) |
Это соотношение можно рассматривать как требование к системе, состоящей из диспетчера и групп.
Докажем соотношение (6.5).
Преобразуем процесс Sys, применив несколько раз теорему о разложении:
Sys
|
|
nacqi!. reli?. D | G1 | . . .
P τ. . . . | acqi?. start!. finish!. reli!. Gi | . . . \ L
i=1 |
. . . | Gn |
|
|
|
|
|
|
nreli?. D | G1 | . . .
P τ.τ. . . . | start!. finish!. reli!. Gi | . . . \ L
. . . | Gn
|
|
reli?. D | G1 | . . .
. . . | finish!. reli!. Gi | . . . \ L
. . . | Gn
|
n |
|
|
reli?. D | G1 | . . . |
|
|
||||||||
|
|
τ.τ.start!. finish!. . . . |
reli!. Gi |
|
. . . |
|
|
L |
||||||
|
=1 |
|
|
. . . | Gn |
|
|
| |
|
|
|
|
\ |
||
iP |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
D G1 |
. . . |
|
|
|
|
|
||||
|
n |
τ.τ.start!. finish!. τ. . . .| Gi| |
|
. . . |
|
L = |
||||||||
|
=1 |
|
|
. . . | Gn| |
|
|
|
\ |
|
|
|
|||
iP |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
τ.τ.start!. finish!. τ.Sys| |
Sys |
|
|
|
} |
|
||||||
= |
n |
{z |
|
|
|
|
|
|||||||
|
=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
iP |
|
|
|
|
|
|
|
|
|
|
|
|
|
150