- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
Глава 11
Исторический обзор и современное состояние дел
Теория процессов объединяет несколько направлений исследований, каждое из которых отражает определённый подход к моделированию и анализу процессов. Ниже мы рассматриваем наиболее крупные из этих направлений.
11.1Робин Милнер
Наибольший вклад в теорию процессов внёс выдающийся английский математик Робин Милнер (см. [1] - [5]).
Робин Милнер родился в 1934 г. в г. Плимуте (Англия) в семье военного офицера. В настоящее время (с 1995 г.) он работает профессором информатики в университете Кембриджа (http://www.cam.ac.uk). С января 1996 г. по октябрь 1999 г. Милнер занимал должность руководителя Компьютерной Лаборатории в университете Кембриджа.
В 1971-1973 г. Милнер стажировался в Лаборатории искусственного интеллекта в Стэнфордском университете. С 1973 г. по 1995 г. он работал в отделении информатики (Computer Science Department) Университета Эдинбурга (Шотландия), в котором в 1986 г. он совместно с коллегами основал Лабораторию основ компьютерных наук (Laboratory for Foundation of Computer Science).
320
С 1971 до 1980, в Стэнфорде и затем в Эдинбурге, он работал в области автоматизации рассуждений. Совместно с коллегами он разработал Логику Вычислимых Функций (Logic for Computable Functions, LCF), развивающую подход Д. Скотта к построению теоретических основ понятия вычислимости, и предназначенную для автоматизации формальных рассуждений. Эта работа послужила основой для прикладных систем, разработанных под руководством Милнера.
В1975-1990 Милнер руководил группой, которая разрабатывала Standard ML – широко используемый в индустрии и образовании язык программирования, семантика которого была полностью формализована (ML является сокращением словосочетания “meta-language”). В языке Standard ML был впервые реализован алгоритм вывода полиморфных типов. Главное достоинство Standard ML – возможность оперирования с логическими доказательствами и наличие средств автоматизации построения логических доказательств.
Около 1980 г. Милнер разработал Исчисление Взаимодействующих Систем (Calculus for Communicating Systems, CCS), одно из первых алгебраических исчислений для анализа параллельных процессов.
Вконце 1980-х совместно с двумя коллегами он разработал π– исчисление, которое является основной моделью поведения мобильных взаимодействующих систем.
В1988 г. Милнер был избран членом Королевского Общества. В 1991 г. ему была присуждена высшая награда в области информатики - премия имени А.М.Тьюринга.
Главную цель своей научной деятельности сам Милнер определяет как построение теории, объединяющей понятие вычисления с понятием взаимодействия.
11.2Исчисление взаимодействующих систем (CCS)
Исчисление Взаимодействующих Систем (Calculus of Communicating Systems, CCS) было впервые опубликовано Милнером в 1980 г. в книге [89]. Стандартным учебником по CCS является книга [92].
321
В [89] отражены результаты исследований Милнера, проведённые им в период с 1973 по 1980 г.
Основные работы Милнера по моделям параллельных процессов, выполненные в этот период:
•работы [84], [85], в них Милнер исследует денотационную семантику параллельных процессов
•[83], [88], здесь, в частности, введено понятие потокового графа (flow graph) с синхронизированными портами,
•[86], [87], в этих работах появилось современное CCS.
Используемая в CCS модель взаимодействия параллельных процессов, основанная на понятии передачи сообщений, взята Милнером из работы Хоара [71].
В статье [66] исследуются сильная и наблюдаемая эквивалентности и вводится логика Хеннесси - Милнера.
Понятия, введённые в CCS, развивались и в рамках других подходов, среди которых следует отметить в первую очередь
•π–исчисление ([53], [97], [94]), и
•структурную операционную семантику (SOS), это направление было создано Г. Плоткиным, и опубликовано в работе [104].
Более подробная информация исторического характера о CCS может быть найдена в [105].
11.3Теория взаимодействующих последовательных процессов (CSP)
Теория взаимодействующих последовательных процессов (Communicating sequential processes, CSP) была разработана английским математиком Тони Хоаром (C.A.R. Hoare) (р. в 1934). Эта теория возникла в 1976 г. и была опубликована в [71]. Более полное изложение CSP содержится в книге [73].
322
ВCSP изучается модель взаимодействия параллельных процессов, основанная на передаче сообщений. Рассматривается синхронное взаимодействие между процессами.
Одним из ключевых понятий CSP является понятие охраняемой команды, которое Хоар позаимствовал из работы Дейкстры [52].
В[72] рассматривается модель CSP, основанная на теории трасс. Недостатком этой модели является отсутствие методов изучения дедлокового поведения. Этот недостаток устранён в другой модели CSP (failure model), введённой в [46].
11.4Алгебра взаимодействующих процессов (ACP)
Ян Бергстра (Jan Bergstra) и Ян Виллем Клоп (Jan Willem Klop)
в1982 г. в работе [37] ввели термин “процессная алгебра” (process algebra), понимая по этим теорию первого порядка с равенством,
вкоторой предметные переменные принимают значения в множестве процессов. Затем разработанные ими подходы привели к созданию нового направления в теории процессов - алгебры взаимодействующих процессов (Algebra of Communicating Processes, ACP), которое изложено в работах [39], [40], [34].
Главным объектом изучения в ACP являются логические теории, в которых испольуются функциональные символы, соответствующие операциям над процессами (a., +, и т.д.)
В[30] проводится сравнительный анализ различных точек зрения на понятие процессной алгебры.
11.5Процессные алгебры
Термин процессная алгебра (ПА), введённый Бергстрой и Клопом, постепенно стал использоваться в двух значениях:
•в первом значении данный термин обозначает произвольную теорию первого порядка с равенством, областью интерпретации которой является некоторое множество процессов, и
323
•во втором значении данный термин обозначает большой класс направлений, каждое из которых связано с некоторой алгебраической теорией, описывающей свойства процессов, в этом значении данный термин используется, например, в названии книги “Справочная книга по процессной алгебре” (Handbook of Process Algebra) [42]
Ниже мы перечисляем наиболее важные источники, относящиеся к ПА в обоих значениях этого термина.
1.Справочная книга по ПА [42].
2.Краткий обзор основных результатов в ПА: [19].
3.Исторические обзоры: [27], [28], [15].
4.Различные подходы, связанные с понятием эквивалентности процессов: [101], [59], [57], [58], [56].
5.ПА с семантикой частичных порядков: [44].
6.ПА с рекурсией: [91], [47].
7.SOS-модель для ПА: [21], [38].
8.Алгебраические методы верификации: [63].
9.ПА с данными (действия и процессы параметризованы элементами данных)
•ПА с данными µ-CRL
•[62] (есть программное средство для верификации на основе излагаемого подхода).
•PSF [79] (есть программное средство).
•Язык формальных описаний LOTOS [45].
10.ПА с временем (действия и процессы параметризованы моментами времени)
•ПА с временем на основе CCS: [114], [99].
•ПА с временем на основе CSP: [107]. Учебник: [109].
324
•ПА с временем на основе ACP: [29].
•Интеграция дискретного и плотного времени, относительного и абсолютного времени: [32].
•Теория ATP: [100].
•Учёт времени в БМ: [33].
•Программное средство UPPAAL [74]
•Программное средство KRONOS [116] (временные автоматы).
•µ-CRL с временем: [111] (эквациональные рассуждения).
11.Вероятностные ПА (действия и процессы параметризованы вероятностями).
Данные ПА предназначены для комбинированного исследования систем, при котором одновременно производится верификация, и анализ производительности.
•Пионерская работа: [64].
•Вероятностные ПА, основанные на CSP: [76]
•Вероятностные ПА, основанные на CCS: [69]
•Вероятностные ПА, основанные на ACP: [31].
•ПА TIPP (и связанное с ней програмное средство): [60].
•ПА EMPA: [43].
•В работах [50] и [23] рассмотрено одновременное использование обычной и вероятностной альтернативной композиции процессов.
•В работе [51] рассмотрено понятие аппроксимации вероятностных процессов.
12.Программные средства, относящиеся к ПА
•Concurrency Workbench [98] (ПА типа CCS).
•CWB-NC [117].
325