Введение
Семейство подходов для моделирования конкурентных систем
В информатике, исчисления процессов (или алгебры процессов) представляют собой разнообразное семейство связанных подходов для формального моделирования конкурентных систем. Исчисления процессов предоставляют инструмент для высокоуровневого описания взаимодействий, коммуникаций и синхронизации между набором независимых агентов или процессов. Они также предоставляют алгебраические законы, позволяющие манипулировать и анализировать описания процессов, а также проводить формальные рассуждения об эквивалентности процессов (например, с использованием бисимуляции). Ведущими примерами исчислений процессов являются CSP, CCS, ACP и LOTOS. Более поздние дополнения к семейству включают π-исчисление, исчисление амбиентов, PEPA, исчисление слияний и исчисление объединений.
In computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems. Process calculi provide a tool for the high level description of interactions, communications, and synchronizations between a collection of independent agents or processes. They also provide algebraic laws that allow process descriptions to be manipulated and analyzed, and permit formal reasoning about equivalences between processes (e. g., using bisimulation). Leading examples of process calculi include CSP, CCS, ACP, and LOTOS. More recent additions to the family include the π calculus, the ambient calculus, PEPA, the fusion calculus and the join calculus.
Параллельный состав
Параллельная композиция двух процессов P и Q, обычно записываемая как P || Q, является ключевым примитивом, отличающим исчисление процессов от последовательных моделей вычислений. Параллельная композиция позволяет вычислениям в P и Q выполняться одновременно и независимо. Однако она также обеспечивает взаимодействие, то есть синхронизацию и передачу информации от P к Q (или наоборот) по каналу, совместно используемому обоими. Важно отметить, что агент или процесс может быть подключен к нескольким каналам одновременно. Каналы могут быть синхронными или асинхронными. В случае синхронного канала, агент, отправляющий сообщение, ожидает, пока другой агент не получит это сообщение. Асинхронные каналы не требуют подобной синхронизации. В некоторых исчислениях процессов (в частности, в π-исчислении) сами каналы могут передаваться в сообщениях по другим каналам, что позволяет изменять топологию взаимосвязей процессов. Некоторые исчисления процессов также позволяют создавать каналы в процессе выполнения вычислений.
Сообщение
Взаимодействие может быть (но не всегда является) направленным потоком информации. То есть, вход и выход можно различать как двойственные примитивы взаимодействия. Процессовые исчисления, которые делают такое различие, обычно определяют оператор ввода (например, ) и оператор вывода (например, ), оба из которых ссылаются на точку взаимодействия (здесь ), используемую для синхронизации с двойственным примитивом взаимодействия. Если происходит обмен информацией, она передается от процесса, выполняющего вывод, к процессу, выполняющему ввод. Примитив вывода определяет данные, которые будут отправлены. Аналогично, если ввод ожидает получения данных, одна или несколько связанных переменных выступают в качестве заполнителей, которые будут заменены данными по их поступлении. В , эту роль играет . Выбор типа данных, которые могут быть обменены при взаимодействии, является одной из ключевых характеристик, отличающих различные процессуальные исчисления.
Последовательная композиция
Иногда взаимодействия должны быть упорядочены во времени. Например, может потребоваться задать алгоритмы, такие как: сначала получить некоторые данные по каналу , а затем отправить эти данные по каналу . Последовательное выполнение (композиция) может быть использовано для этих целей. Это хорошо известно из других моделей вычислений. В исчислениях процессов оператор последовательности обычно интегрирован с операциями ввода или вывода, или с обоими. Например, процесс будет ожидать ввода по каналу . Только после получения этого ввода процесс будет активирован, при этом полученные данные, переданные по каналу , будут подставлены вместо идентификатора .
Спрятаться
Процессы не ограничивают количество соединений, которые могут быть установлены в данной точке взаимодействия. Однако точки взаимодействия допускают интерференцию (то есть взаимодействие). Для синтеза компактных, минимальных и композиционных систем критически важна возможность ограничения интерференции. Скрывающие операции позволяют контролировать соединения, устанавливаемые между точками взаимодействия при параллельном объединении агентов. Скрытие может быть обозначено различными способами. Например, в π-исчислении скрытие имени в может быть выражено как , а в CSP – как .
synthesis of compact, minimal and compositional systems, the ability to restrict interference is crucial. Hiding operations allow control of the connections made between interaction points when composing
agents in parallel. Hiding can be denoted in a variety of ways. For example, in the π calculus the hiding of a name in can be expressed as , while in CSP it might be written as .
Рекурсия и репликация
Представленные до сих пор операции описывают только конечное взаимодействие и, следовательно, недостаточны для полной вычислимости, которая включает в себя нетерминирующееся поведение. Рекурсия и репликация – это операции, позволяющие задавать бесконечное поведение с помощью конечных описаний. Рекурсия хорошо известна из последовательного мира вычислений. Репликацию можно понимать как сокращенную запись параллельной композиции счетно бесконечного числа процессов.
Процесс нуля
Процессовые исчисления обычно также включают нулевой процесс (обозначаемый различными способами как , , , или другим подходящим символом), который не имеет точек взаимодействия. Он полностью неактивен, и его единственная цель — служить индуктивной базой, на основе которой могут быть построены более сложные процессы.
Дискретная и непрерывная алгебра процессов
Алгебра процессов изучалась для дискретного и непрерывного времени (времени реального масштаба или плотного времени).
История
В первой половине 20-го века было предложено множество формализмов для описания неформального понятия вычислимой функции, среди которых рекурсивные функции μ, машины Тьюринга и лямбда-исчисление, пожалуй, наиболее известны сегодня. Удивительный факт их существенной эквивалентности, заключающийся в возможности кодирования каждого из них в другие, подтверждает тезис Черча-Тьюринга. Другая общая черта, которая упоминается реже, заключается в том, что все они наиболее естественно понимаются как модели последовательных вычислений. Последующая консолидация информатики потребовала более тонкой формулировки понятия вычислений, в частности, явного представления параллелизма и взаимодействия. В результате этого направления исследований возникли модели параллелизма, такие как исчисления процессов, сети Петри (1962 год) и акторная модель (1973 год). Систематические исследования исчислений процессов начались с основополагающей работы Робина Милнера над исчислением коммуникационных систем (CCS) в период с 1973 по 1980 год. Работа К. А. Р. Хоара «Communicating Sequential Processes» (CSP) впервые появилась в 1978 году и впоследствии была развита в полноценное исчисление процессов в начале 1980-х годов. В процессе развития CCS и CSP происходил активный обмен идеями. В 1982 году Ян Бергстра и Ян Виллем Клоп начали работу над тем, что стало известно как алгеброй коммуникационных процессов (ACP), и ввели термин «алгебра процессов» для описания своей работы, однако она менее универсальна, чем окружающий анализ. Использование исчислений процессов для моделирования биологических систем (стохастическое π-исчисление, BioAmbients, Beta-связыватели, BioPEPA, Brane calculus). Некоторые считают, что композиционность, предоставляемая теоретическими инструментами исчислений процессов, может помочь биологам более формально организовать свои знания.
Отношения с другими моделями конкуренции
Исторический моноид — это свободный объект, который позволяет универсально представлять истории отдельных взаимодействующих процессов. Процессное исчисление, таким образом, является формальным языком, наложенным на исторический моноид согласованным образом. То есть, исторический моноид может лишь фиксировать последовательность событий, включая синхронизацию, но не определяет допустимые переходы состояний. Следовательно, процессное исчисление по отношению к историческому моноиду является тем же, чем формальный язык по отношению к свободному моноиду (формальный язык — это подмножество множества всех возможных строк конечной длины, составленных из алфавита и сгенерированных звездой Клине). Использование каналов для коммуникации — одна из характеристик, отличающих процессные исчисления от других моделей конкурентности, таких как сети Петри и модель акторов (см. модель акторов и процессные исчисления). Одной из основных причин включения каналов в процессные исчисления было обеспечение возможности применения определенных алгебраических методов, что упрощает алгебраическое рассуждение о процессах.