- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
существенные вычислительные проблемы при формальном анализе этого процесса.
2.Описание процесса не должно быть чрезмерно упрощённым, оно должно
•отражать те аспекты поведения моделируемой системы, которые имеют отношение к проверяемым свойствам, и
•сохранять все свойства поведения этой системы, которые представляют интерес для анализа
т.к. в случае несоблюдения этого условия результаты анализа такого процесса не будут иметь смысла.
2.2Неформальное понятие процесса и примеры процессов
Прежде чем сформулировать точное определение процесса, мы приведём неформальное понятие процесса, и рассмотрим простейшие примеры процессов.
2.2.1Неформальное понятие процесса
Как было сказано выше, мы понимаем под процессом модель поведения динамической системы на некотором уровне абстракции.
Процесс можно представлять себе как граф P , компоненты которого имеют следующий смысл.
•Вершины графа P называются состояниями, и изображают ситуации (или классы ситуаций), в которых может находиться моделируемая система в различные моменты своего функционирования.
Одно из состояний является выделенным, оно называется
начальным состоянием процесса P .
•Рёбра графа P имеют метки, изображающие действия, которые может исполнять моделируемая система.
15
•Функционирование процесса P описывается переходами по рёбрам графа P от одного состояния к другому. Функционирование начинается из начального состояния.
Метка каждого ребра изображает действие процесса, исполняемое при переходе от состояния в начале ребра к состоянию в его конце.
2.2.2Пример процесса
В качестве первого примера рассмотрим процесс, представляющий собой простейшую модель поведения некоторого торгового автомата.
Мы будем представлять себе этот автомат как машину, которая имеет
•монетоприемник,
•кнопку, и
•лоток для выдачи товара.
Когда покупатель хочет приобрести товар, он
•опускает монету в монетоприемник,
•нажимает на кнопку
ипосле этого в лотке появляется товар.
Предположим, что наш автомат торгует шоколадками по цене 1 монета за штуку.
Опишем действия такого автомата.
•По инициативе покупателя, в автомате могут происходить следующие действия:
–попадание в щель монеты, и
–нажатие кнопки.
•В ответ автомат может осуществлять реакцию: выдавать в лоток шоколадку.
16
Обозначим действия короткими именами:
•прием монеты мы обозначим символом пр_мон,
•нажатие кнопки - символом наж_кн, и
•выдачу шоколадки - символом выд_шок.
Процесс нашего торгового автомата выглядит следующим об-
разом:
s0
@I
@
|
@ |
пр_мон |
@@ выд_шок |
|
@ |
@
? наж_кн@@s1 - s2
Данная диаграмма объясняет, как именно функционирует торговый автомат:
•вначале автомат находится в состоянии s0, в этом состоянии он ожидает появления в приемнике монеты
(то, что состояние s0 является начальным, изображается на диаграмме двойным кружочком вокруг идентификатора этого состояния)
•когда монета появляется, автомат переходит в состояние s1
иждет нажатия на кнопку,
•после нажатия кнопки автомат
–переходит в состояние s2,
–выдает шоколадку, и
–возвращается в состояние s0.
17
2.2.3Другой пример процесса
Рассмотрим более сложный пример торгового автомата, который отличается от предыдущего тем, что продаёт два вида товаров: чай и кофе, причём стоимость чая - 1 рубль, а стоимость кофе - 2 рубля.
Автомат имеет две кнопки: одну - для чая, другую - для кофе. Покупатель может платить монетами достоинством в 1 рубль и 2 рубля. Данные монеты будут обозначаться знакосочетаниями
мон_1 и мон_2 соответственно.
Если покупатель опустил в монетоприемник монету мон_1, он может купить только чай. Если же он опустил монету мон_2, он может купить кофе или два чая. Кофе можно купить также, опустив в монетоприёмник две монеты мон_1.
Процесс такого торгового автомата выглядит следующим образом:
выд_кофеs0
|
|
|
|
@I |
выд чай |
|
|
|
|
|
|
|
@ |
|
|
||
|
пр_мон_1 |
|
@@ s4 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пр_мон_2 |
|
|
|
|
наж_кн_чай |
s5 |
||
s1 |
|
|||||||
|
|
|
|
? |
|
|
6 |
|
|
|
|
|
@I |
выд чай |
|||
|
|
@ |
||||||
|
пр_мон_1 |
|
@@ s3 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
наж_кн_чай |
|
|
|
|
|
- s2 |
|
|
|
|||
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
наж_кн_кофе |
Для формального определения понятия процесса мы должны уточнить понятие действия. Это уточнение излагается в параграфе 2.3.
18