Расчет процесса


В компьютерных науках исчисления процессов (или алгебры процессов ) представляют собой разнообразное семейство связанных подходов к формальному моделированию параллельных систем . Исчисления процессов предоставляют инструмент для высокоуровневого описания взаимодействий, коммуникаций и синхронизации между набором независимых агентов или процессов. Они также предоставляют алгебраические законы, которые позволяют манипулировать описаниями процессов и анализировать их, а также позволяют формальные рассуждения об эквивалентности между процессами (например, с использованием бисимуляции ). Ведущие примеры исчисления процессов включают CSP , CCS , ACP и LOTOS .[1] Более поздние дополнения к семейству включают π-исчисление , окружающее исчисление , PEPA , исчисление слияния и исчисление соединения .

Хотя разнообразие существующих исчислений процессов очень велико (включая варианты, которые включают стохастическое поведение, временную информацию и специализации для изучения молекулярных взаимодействий), есть несколько общих черт, которые имеют все исчисления процессов: [2]

Чтобы определить исчисление процессов , нужно начать с набора имен (или каналов ), целью которых является предоставление средств связи. Во многих реализациях каналы имеют богатую внутреннюю структуру для повышения эффективности, но в большинстве теоретических моделей это абстрагируется. Помимо имен, нужны средства для формирования новых процессов из старых. Базовые операторы, всегда присутствующие в той или иной форме, позволяют: [3]

Параллельная композиция двух процессов и , обычно обозначаемая как , является ключевым примитивом, отличающим исчисления процессов от последовательных моделей вычислений. Параллельная композиция позволяет выполнять вычисления одновременно и независимо друг от друга . Но это также позволяет взаимодействие, то есть синхронизацию и поток информации от к (или наоборот) по каналу, совместно используемому обоими. Важно отметить, что агент или процесс могут быть подключены более чем к одному каналу одновременно.

Каналы могут быть синхронными или асинхронными. В случае синхронного канала агент, отправляющий сообщение, ждет, пока другой агент не получит сообщение. Асинхронные каналы не требуют такой синхронизации. В некоторых исчислениях процессов (особенно в π-исчислении ) сами каналы могут быть отправлены в сообщениях через (другие) каналы, что позволяет изменить топологию взаимосвязей процессов. Некоторые исчисления процессов также позволяют создавать каналы во время выполнения вычислений.

Взаимодействие может быть (но не всегда) направленным потоком информации. То есть ввод и вывод можно выделить как примитивы двойного взаимодействия. Исчисления процессов, которые делают такие различия, обычно определяют оператор ввода ( например ) и оператор вывода ( например ), оба из которых называют точку взаимодействия (здесь ), которая используется для синхронизации с примитивом двойного взаимодействия.