- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
8.Множество переменных процесса содержит
•все переменные, входящие в какой-либо из операторов блок-схемы,
•а также переменную atP .
9.Начальное условие процесса совпадает с начальным условием Init блок-схемы.
7.5Пример процесса с передачей сообщений
В этом параграфе мы рассмотрим в качестве примера процесс “буфер”:
•сначала мы определим этот процесс в виде блок-схемы, и
•затем мы построим по этой блок-схеме представление процесса “буфер” в стандартной форме.
7.5.1Понятие буфера
Пусть n – некоторое положительное целое число.
Под буфером размера n мы в этом параграфе будем понимать систему (называемую ниже просто буфером), которая обладает следующими свойствами.
•В буфер можно вводить символы. Символы, введённые в
буфер, можно выводить из буфера.
Если некоторый символ c введён в буфер, то мы будем говорить, что символ c содержится в буфере (до тех пор пока этот символ не будет выведен из буфера).
В буфере может одновременно содержаться не более n символов.
187
•В каждый момент времени совокупность символов, содержащихся в буфере, представляет собой упорядоченную последовательность
c1, . . . , ck |
(0 ≤ k ≤ n) |
(7.15) |
которая называется содержимым буфера. Число k называется размером содержимого буфера.
Случай k = 0 соответствует ситуации, когда в буфере не содержится ни одного символа, в этом случае мы будем говорить, что буфер пуст.
•Если в текущий момент времени содержимое буфера имеет вид (7.15), и k < n, то в буфер можно ввести произвольный символ c, и после выполнения этой операции содержимое буфера примет вид
c1, . . . , ck, c
•Если в текущий момент времени содержимое буфера имеет вид (7.15), и k > 0, то из буфера можно вывести символ, расположенный в начале его содержимого (т.е. c1), после выполнения этой операции содержимое буфера примет вид
c2, . . . , ck
Таким образом, в каждый момент времени содержимое буфера представляет собой очередь символов, причём
•каждая операция ввода символа в буфер добавляет вводимый символ в конец этой очереди, и
•каждая операция вывода символа из буфера
–выводит из буфера первый элемент этой очереди, и
–удаляет этот элемент из очереди
Очереди, операции с которыми выглядят описанным выше образом, называются очередями типа FIFO (First Input - First Output).
188
7.5.2Представление поведения буфера в виде блок-схемы
Одним из возможных формальных уточнений понятия буфера является процесс Bu ern, описание которого приводится в этом параграфе в виде блок-схемы. В этом процессе
•операция ввода символа в буфер представляется действием с именем In, и
•операция вывода символа из буфера представляется действием с именем Out.
Процесс Bu ern имеет следующие переменные:
•переменная n типа int, её значение не изменяется, оно равно максимальному размеру содержимого буфера
•переменная k типа int, её значение равно размеру содержимого буфера в текущий момент времени
•переменная q типа string, её значение равно содержимому буфера в текущий момент времени
•переменная f типа char, в эту переменную будут записываться вводимые символы при выполнении операции ввода.
Блок-схема, представляющая процесс Bu ern, имеет следующий вид (используемые в этой блок-схеме обозначения были определены в параграфе 7.2.3):
189
'$
start
n > 0
q = ε
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
k = 0 |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
& |
|
|
% |
|
|
||||||
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
k < n |
|
− |
|
||||||||
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
||||
|
|
|
|
− |
k > 0 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
? |
|
|
+ |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
? |
|
|
||||||
|
|
In ? f |
|
|
? |
- |
Out ! qˆ |
|
|
||||||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
? |
|
|
|
? |
|
|
|||||||||
|
q := q |
[f] |
|
|
|
|
|
|
|
|
q := q0 |
|
|||||
|
· |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
? |
|
|
|
|
|
|
|
|
|
|
? |
|
|
||
|
k := k + 1 |
|
|
|
|
|
|
|
k := k − 1 |
|
|||||||
|
|
|
|
|
|
|
|
|
7.5.3Представление поведения буфера в виде процесса
Для построения процесса Bu er n, который соответствует определённой выше блок-схеме, мы нарисуем точки на её рёбрах:
190
'$
start
n > 0
q = ε
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
k = 0 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
& |
|
A |
% |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
- |
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k < n |
|
|
− |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
s? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− |
k > 0 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
D |
s? |
|
|
+ |
|
F |
|
|
E |
|
|
|||||
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
Gs |
|
|
? |
Hs |
|
s? |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
K |
|
|
L |
|
|
|
|
|
|
|
|
M |
|
N |
|||||
|
|
|
In |
? f |
|
s - Out |
! qˆ |
|
|
||||||||||
|
s |
|
|
s? |
|
|
|
|
|
|
|
|
|
|
s? |
|
s |
||
|
|
q := q |
· |
[f] |
|
|
|
|
|
|
|
q := q0 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O |
s? |
|
|
|
|
|
|
|
|
|
|
s? |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P |
|
|
|
|
|
k := k + 1 |
|
|
|
|
|
|
k := k − 1 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
При построении процесса по этой блок-схеме будут удалены точки A, G, H, K и N.
Искомый процесс Bu er n имеет следующий вид:
191