В информатике, Вычисления процессов (или алгебры процессов ) представляют собой разнообразное семейство связанных подходов для формального моделирования параллельных систем. Вычисления процессов предоставляют инструмент для высокоуровневого описания взаимодействий, коммуникаций и синхронизации между набором независимых агентов или процессов. Они также предоставляют алгебраические законы, которые позволяют манипулировать и анализировать описания процессов, а также позволяют формально рассуждать об эквивалентности между процессами (например, используя бисимуляцию ). Ведущие примеры вычислений процесса включают CSP, CCS, ACP и LOTOS. Более поздние дополнения к семейству включают π-исчисление, окружающее исчисление, PEPA, и объединенное исчисление.
Хотя разнообразие существующих вычислений процессов очень велико (включая варианты, которые включают стохастическое поведение, информацию о времени и специализации для изучения молекулярных взаимодействий), есть несколько общих черт, общих для всех вычислений процессов:
Чтобы определить исчисление процессов, нужно начать с набора имен (или каналы ), целью которых является предоставление средств связи. Во многих реализациях каналы имеют богатую внутреннюю структуру для повышения эффективности, но в большинстве теоретических моделей это абстрагируется. Помимо имен, нужны средства для формирования новых процессов из старых. Основные операторы, всегда присутствующие в той или иной форме, позволяют:
Параллельная композиция двух процессов и , обычно пишется - ключевой примитив, отличающий вычисления процесса от последовательных моделей вычислений. Параллельная композиция позволяет выполнять вычисления в и одновременно и независимо. Но он также позволяет взаимодействие, то есть синхронизацию и поток информации от до (или наоборот) на канале, совместно используемом обоими. Важно отметить, что агент или процесс могут быть подключены более чем к одному каналу одновременно.
Каналы могут быть синхронными или асинхронными. В случае синхронного канала агент, отправляющий сообщение, ожидает, пока другой агент не получит сообщение. Асинхронные каналы не требуют такой синхронизации. В некоторых вычислениях процессов (в частности, π-исчислении ) сами каналы могут отправляться в сообщениях через (другие) каналы, что позволяет изменять топологию взаимосвязей процессов. Некоторые вычисления процесса также позволяют создавать каналы во время выполнения вычисления.
Взаимодействие может быть (но не всегда) направленным потоком информации. То есть ввод и вывод можно разделить как примитивы двойного взаимодействия. Вычисления процесса, которые делают такие различия, обычно определяют оператор ввода (например, ) и оператор вывода (например, ), оба из которых называют точку взаимодействия (здесь ), которая используется для синхронизации с примитивом двойного взаимодействия.
Если происходит обмен информацией, она будет переходить от процесса вывода к процессу ввода. Примитив вывода будет указывать данные для отправки. В эти данные равны . Точно так же, если вход ожидает получения данных, одна или несколько связанных переменных будут действовать как заполнители, которые будут заменены данными, когда они поступят. В , играет эту роль. Выбор типа данных, которыми можно обмениваться во время взаимодействия, является одной из ключевых особенностей, отличающих различные вычисления процесса.
Иногда взаимодействия должны быть упорядочены во времени. Например, может быть желательно указать такие алгоритмы, как: сначала получить данные на , а затем отправить эти данные на . Для таких целей можно использовать последовательную композицию. Это хорошо известно из других моделей вычислений. В расчетах процесса оператор секвенирования обычно интегрируется с вводом или выводом, либо с обоими. Например, процесс будет ждать ввода на . Только после этого будет активирован процесс с полученными данными через заменен на идентификатор .
Ключевое правило операционного сокращения, содержащее вычислительную сущность процесса Calculi, могут быть даны исключительно в терминах параллельной композиции, упорядочивания, ввода и вывода. Детали этой редукции варьируются в зависимости от исчислений, но суть остается примерно той же. Правило редукции:
Интерпретация этого правила сокращения такова:
Класс процессов, может изменяться, поскольку продолжение операции вывода существенно влияет на свойства исчисления.
Процессы не ограничивают количество соединений, которые могут быть установлены в данной точке взаимодействия. Но точки взаимодействия допускают вмешательство (то есть взаимодействие). Для синтеза компактных, минимальных и композиционных систем решающее значение имеет способность ограничивать помехи. Операции сокрытия позволяют контролировать связи между точками взаимодействия при параллельном составлении агентов. Сокрытие можно обозначить по-разному. Например, в π-исчислении скрытие имени в можно выразить как , а в CSP его можно было бы записать как .
Операции, представленные до сих пор, описывают только конечное взаимодействие и являются следовательно, недостаточен для полной вычислимости, включая непрерывное поведение. Рекурсия и репликация - это операции, которые допускают конечное описание бесконечного поведения. Рекурсия хорошо известна из мира последовательностей. Репликация можно понимать как сокращение параллельной композиции счетно бесконечного числа процессов :
Вычисления процесса обычно также включают нулевой процесс (по-разному обозначается как , , , или другой подходящий символ), имеющий нет точек взаимодействия. Он совершенно неактивен, и его единственная цель - действовать как индуктивный якорь, на котором могут генерироваться более интересные процессы.
Алгебра процессов была изучена для дискретного времени и непрерывного времени (реального времени или плотного времени).
В первой половине 20 века были предложены различные формализмы для отражения неформальной концепции вычислимой функции с μ-рекурсивными функциями, Тьюринга. машины и лямбда-исчисление, возможно, являются наиболее известными примерами сегодня. Удивительный факт, что они по существу эквивалентны в том смысле, что все они кодируются друг в друга, подтверждает тезис Черча-Тьюринга. Еще одна общая особенность комментируется реже: все они легче всего воспринимаются как модели последовательных вычислений. Последующая консолидация информатики потребовала более тонкой формулировки понятия вычислений, в частности явных представлений о параллелизме и коммуникации. Модели параллелизма, такие как вычисления процессов, сети Петри в 1962 году и модель акторов в 1973 году, возникли в результате этого исследования.
Исследования процессов исчисления начались всерьез с плодотворной работы Робина Милнера по Исчислению коммуникационных систем (CCS) в период с 1973 по 1980 год. АВТОМОБИЛЬ Книга Хоара Communicating Sequential Processes (CSP) впервые появилась в 1978 году, а в начале 1980-х годов была преобразована в полноценное вычисление процессов. По мере развития между CCS и CSP происходил обмен идеями. В 1982 году Ян Бергстра и Ян Виллем Клоп начали работу над тем, что стало известно как Алгебра коммуникационных процессов (ACP), и ввели термин «алгебра процессов». описать свою работу. CCS, CSP и ACP составляют три основные ветви семейства исчислений процессов: большинство других исчислений процессов могут прослеживать свои корни до одного из этих трех исчислений.
Были изучены различные исчисления процессов, и не все из них соответствуют обрисованной здесь парадигме. Наиболее ярким примером может быть окружающее исчисление. Этого следовало ожидать, поскольку расчеты процессов являются активной областью изучения. В настоящее время исследования процессов исчисления сосредоточены на следующих проблемах.
Идеи, лежащие в основе алгебры процессов, привели к несколько инструментов, включая:
Моноид истории - это свободный объект, который в общем может представлять истории отдельных коммуникативных процессов. Тогда исчисление процесса - это формальный язык, наложенный на исторический моноид согласованным образом. То есть исторический моноид может записывать только последовательность событий с синхронизацией, но не указывает разрешенные переходы между состояниями. Таким образом, исчисление процессов для исторического моноида является тем же, чем формальный язык для свободного моноида (формальный язык - это подмножество множества всех возможных строк конечной длины в алфавите генерируется звездой Клини ).
Использование каналов для связи - одна из особенностей, отличающих вычисления процесса от других моделей параллелизма, таких как сети Петри и модель актора. (см. Модель актора и вычисления процесса ). Одним из основных мотивов включения каналов в вычисления процессов было включение определенных алгебраических методов, тем самым облегчая алгебраические рассуждения о процессах.