Расчет процесса - Process calculus
В Информатика, то технологические расчеты (или же алгебры процессов) представляют собой разнообразное семейство связанных подходов к формальному моделированию параллельные системы. Вычисления процессов предоставляют инструмент для высокоуровневого описания взаимодействий, коммуникаций и синхронизации между набором независимых агентов или процессов. Они также предоставляют алгебраический законы, которые позволяют манипулировать и анализировать описания процессов и позволяют формально рассуждать об эквивалентности между процессами (например, используя бисимуляция ). Ведущие примеры расчетов процесса включают: CSP, CCS, ACP, и LOTOS.[1] Более поздние дополнения к семейству включают π-исчисление, то окружающее исчисление, PEPA, то термоядерное исчисление и соединительное исчисление.
Важные особенности
Хотя разнообразие существующих технологических расчетов очень велико (включая варианты, которые включают стохастический поведение, информация о времени и специализация для изучения молекулярных взаимодействий), есть несколько общих черт, присущих всем процессам:[2]
- Представляя взаимодействия между независимыми процессами как коммуникацию (передача сообщений ), а не как модификация общих переменных.
- Описание процессов и систем с использованием небольшого набора примитивов и операторов для объединения этих примитивов.
- Определение алгебраических законов для операторов процесса, которые позволяют манипулировать выражениями процесса с помощью эквациональное рассуждение.
Математика процессов
Чтобы определить процесс исчисления, начинается с набора имена (или же каналы ), целью которого является предоставление средств связи. Во многих реализациях каналы имеют богатую внутреннюю структуру для повышения эффективности, но в большинстве теоретических моделей это абстрагируется. Помимо имен, нужны средства для формирования новых процессов из старых. Основные операторы, всегда присутствующие в той или иной форме, позволяют:[3]
- параллельная композиция процессов
- спецификация каналов для отправки и получения данных
- упорядочение взаимодействий
- скрытие точек взаимодействия
- рекурсия или репликация процесса
Параллельная композиция
Параллельная композиция двух процессов и , обычно пишется , является ключевым примитивом, отличающим вычисления процесса от последовательных моделей вычислений. Параллельная композиция позволяет проводить вычисления в и действовать одновременно и независимо. Но это также позволяет взаимодействие, то есть синхронизацию и поток информации от к (или наоборот) на общем канале. Важно отметить, что агент или процесс могут быть подключены более чем к одному каналу одновременно.
Каналы могут быть синхронными или асинхронными. В случае синхронного канала агент, отправляющий сообщение, ожидает, пока другой агент не получит сообщение. Асинхронные каналы не требуют такой синхронизации. В некоторых расчетах процесса (особенно π-исчисление ) сами каналы могут быть отправлены в сообщениях через (другие) каналы, что позволяет изменять топологию взаимосвязей процессов. Некоторые расчеты процесса также позволяют созданный во время выполнения вычисления.
Коммуникация
Взаимодействие может быть (но не всегда) направленный Поток информации. То есть ввод и вывод можно разделить как примитивы двойного взаимодействия. Вычисления процесса, которые делают такие различия, обычно определяют оператор ввода (например ) и оператор вывода (например ), оба из которых называют точку взаимодействия (здесь ), который используется для синхронизации с примитивом двойного взаимодействия.
Если происходит обмен информацией, она будет переходить от процесса вывода к процессу ввода. Примитив вывода будет указывать данные для отправки. В , эти данные . Точно так же, если вход ожидает получения данных, один или несколько связанные переменные будут действовать как заполнители, которые будут заменены данными, когда они появятся. В , играет эту роль. Выбор типа данных, которыми можно обмениваться во время взаимодействия, является одной из ключевых особенностей, отличающих различные вычисления процесса.
Последовательная композиция
Иногда взаимодействия необходимо временно упорядочить. Например, может быть желательно указать такие алгоритмы, как: сначала получите данные о а затем отправьте эти данные на . Последовательная композиция можно использовать для таких целей. Это хорошо известно из других моделей вычислений. В расчетах процесса оператор секвенирования обычно интегрируется с вводом или выводом, либо с обоими. Например, процесс будет ждать ввода на . Только когда этот ввод произойдет, процесс быть активированным, с полученными данными через заменен на идентификатор .
Семантика редукции
Ключевое правило операционного сокращения, содержащее вычислительную сущность вычислений процесса, может быть задано исключительно в терминах параллельной композиции, упорядочивания, ввода и вывода. Детали этой редукции различаются между исчислениями, но суть остается примерно той же. Правило сокращения:
Интерпретация этого правила редукции:
- Процесс отправляет сообщение, здесь , вдоль канала . По сути, процесс получает это сообщение на канале .
- Как только сообщение будет отправлено, становится процессом , пока становится процессом , который с заполнителем заменен , данные, полученные на .
Класс процессов, которые может изменяться, поскольку продолжение операции вывода существенно влияет на свойства исчисления.
Прячется
Процессы не ограничивают количество соединений, которые могут быть установлены в данной точке взаимодействия. Но точки взаимодействия допускают вмешательство (то есть взаимодействие). Для синтеза компактных, минимальных и композиционных систем решающее значение имеет способность ограничивать помехи. Прячется Операции позволяют контролировать соединения между точками взаимодействия при параллельной компоновке агентов. Сокрытие можно обозначить по-разному. Например, в π-исчисление сокрытие имени в можно выразить как , пока в CSP это можно было бы записать как .
Рекурсия и репликация
Представленные до сих пор операции описывают только конечное взаимодействие и, следовательно, недостаточны для полной вычислимости, которая включает в себя поведение без завершения. Рекурсия и репликация - это операции, которые позволяют конечное описание бесконечного поведения. Рекурсия хорошо известна из мира последовательностей. Репликация можно понимать как сокращение параллельной композиции счетно бесконечного числа процессы:
Нулевой процесс
Расчеты процесса обычно также включают нулевой процесс (по-разному обозначается как , , , , или другой подходящий символ), не имеющий точек взаимодействия. Он совершенно неактивен, и его единственная цель - действовать как индуктивный якорь, на котором могут генерироваться более интересные процессы.
Алгебра дискретных и непрерывных процессов
Алгебра процессов изучалась для дискретное время и непрерывное время (реальное время или плотное время).[4]
История
В первой половине 20-го века были предложены различные формализмы для отражения неформальной концепции вычислимая функция, с μ-рекурсивные функции, Машины Тьюринга и лямбда-исчисление возможно, это самые известные примеры сегодня. Удивительный факт, что они по сути эквивалентны в том смысле, что все они кодируются друг в друга, поддерживает Тезис Черча-Тьюринга. Еще одна общая черта комментируется реже: все они легко воспринимаются как модели последовательный вычисление. Последующая консолидация информатики потребовала более тонкой формулировки понятия вычислений, в частности явного представления параллелизма и коммуникации. Модели параллелизма, такие как вычисления процесса, Сети Петри в 1962 г., а актерская модель в 1973 году вышла из этой линии расследования.
Исследования по процессным вычислениям начались всерьез с Робин Милнер плодотворная работа над Расчет коммуникационных систем (CCS) в период с 1973 по 1980 гг. МАШИНА. Hoare с Связь последовательных процессов (CSP) впервые появился в 1978 году, а в начале 1980-х годов был преобразован в полноценный процесс. По мере развития CCS и CSP обменялись идеями. В 1982 г. Ян Бергстра и Ян Виллем Клоп начал работу над тем, что стало известно как Алгебра коммуникационных процессов (ACP) и ввел термин алгебра процессов описать свою работу.[1] CCS, CSP и ACP составляют три основные ветви семейства исчислений процессов: большинство других исчислений процессов могут прослеживать свои корни до одного из этих трех исчислений.
Текущее исследование
Были изучены различные исчисления процессов, и не все они вписываются в обрисованную здесь парадигму. Наиболее ярким примером может быть окружающее исчисление. Этого следовало ожидать, поскольку расчеты процессов являются активной областью изучения. В настоящее время исследования процессов исчисления сосредоточены на следующих проблемах.
- Разработка новых расчетов процессов для лучшего моделирования вычислительных явлений.
- Нахождение корректных субсчетов данного исчисления процесса. Это ценно, потому что (1) большинство вычислений справедливо дикий в том смысле, что они носят довольно общий характер и мало что можно сказать о произвольных процессах; и (2) вычислительные приложения редко исчерпывают все исчисления. Скорее они используют только очень ограниченные по форме процессы. Ограничение формы процессов в основном изучается с помощью системы типов.
- Логика для процессов, позволяющая рассуждать о (по сути) произвольных свойствах процессов, следуя идеям Логика Хоара.
- Теория поведения: что значит совпадение двух процессов? Как мы можем определить, являются ли два процесса разными или нет? Можем ли мы найти представителей для классов эквивалентности процессов? Как правило, процессы считаются одинаковыми, если никакой контекст, то есть другие процессы, выполняющиеся параллельно, не может обнаружить разницу. К сожалению, уточнение этой интуиции - дело тонкое и в большинстве случаев приводит к громоздким характеристикам равенства (которое в большинстве случаев также должно быть неразрешимым, как следствие проблема остановки ). Бисимуляции представляют собой технический инструмент, помогающий рассуждать об эквивалентности процессов.
- Выразительность исчислений. Опыт программирования показывает, что на одних языках определенные проблемы решить легче, чем на других. Это явление требует более точной характеристики выразительности вычислений, моделирующих вычисление, чем та, которую дает Тезис Черча-Тьюринга. Один из способов сделать это - рассмотреть кодировки между двумя формализмами и посмотреть, какие кодировки свойств потенциально могут сохранить. Чем больше свойств может быть сохранено, тем более выразительной будет цель кодирования. Для технологических расчетов знаменитые результаты заключаются в том, что синхронный π-исчисление более выразителен, чем его асинхронный вариант, обладает такой же выразительной силой, что и старшие π-исчисление[5], но меньше, чем окружающее исчисление.[нужна цитата ]
- Использование процесса исчисления для моделирования биологических систем (стохастическое π-исчисление, BioAmbients, Beta Binders, BioPEPA, Brane Calculus). Некоторые считают, что композиционность Предлагаемые теоретико-технологическими инструментами могут помочь биологам организовать свои знания более формально.
Программные реализации
Идеи, лежащие в основе алгебры процессов, привели к появлению нескольких инструментов, включая:
Связь с другими моделями параллелизма
В история моноид это свободный объект который в целом способен представлять истории отдельных коммуникативных процессов. Тогда исчисление процесса - это формальный язык последовательно накладывается на исторический моноид.[6] То есть исторический моноид может записывать только последовательность событий с синхронизацией, но не указывает разрешенные переходы между состояниями. Таким образом, исчисление процессов для исторического моноида - то же самое, что формальный язык для исторического моноида. свободный моноид (формальный язык - это подмножество множества всех возможных строк конечной длины алфавит генерируется Клини звезда ).
Использование каналов для коммуникации - одна из особенностей, отличающих расчет процесса от других моделей параллелизм, Такие как Сети Петри и актерская модель (видеть Модель актора и расчеты процесса ). Одним из основных мотивов включения каналов в вычисления процессов было включение определенных алгебраических методов, тем самым облегчая алгебраические рассуждения о процессах.
Смотрите также
Рекомендации
- ^ а б Baeten, J.C.M. (2004). «Краткая история алгебры процессов» (PDF). Раппорт CSR 04-02. Vakgroep Informatica, Technische Universiteit Eindhoven.
- ^ Пирс, Бенджамин (1996-12-21). «Основы исчисления для языков программирования». Справочник по информатике и инженерии. CRC Press. С. 2190–2207. ISBN 0-8493-2909-4.
- ^ Baeten, J.C.M .; Браветти, М. (август 2005 г.). "Алгебра общих процессов". Вычисления алгебраических процессов: первые двадцать пять лет и далее (Серия заметок БРИКС NS-05-3). Бертиноро, Форли, Италия: БРИКС, Департамент компьютерных наук, Орхусский университет. Получено 2007-12-29.
- ^ Baeten, J.C.M .; Мидделбург, К. А. "Алгебра процессов с таймингом: в реальном времени и в дискретном времени". CiteSeerX 10.1.1.42.729. Цитировать журнал требует
| журнал =
(помощь) - ^ Санджорджи, Давиде (1993). Gaudel, M. -C .; Жуанно, Ж. -П. (ред.). «От π-исчисления к π-исчислению более высокого порядка - и обратно». TAPSOFT'93: Теория и практика разработки программного обеспечения. Конспект лекций по информатике. Springer Berlin Heidelberg. 668: 151–166. Дои:10.1007/3-540-56610-4_62. ISBN 9783540475989.
- ^ Мазуркевич, Антони (1995). «Введение в теорию следов» (PostScript). In Diekert, V .; Розенберг, Г. (ред.). Книга следов. Сингапур: World Scientific. С. 3–41. ISBN 981-02-2058-8.
дальнейшее чтение
- Мэтью Хеннесси: Алгебраическая теория процессов, MIT Press, ISBN 0-262-08171-7.
- К. А. Р. Хоар: Связь последовательных процессов, Prentice Hall, ISBN 0-13-153289-8.
- Эта книга была обновлена Джимом Дэвисом на Вычислительная лаборатория Оксфордского университета и новое издание доступно для скачивания как PDF файл в Использование CSP интернет сайт.
- Робин Милнер: Расчет взаимодействующих систем, Springer Verlag, ISBN 0-387-10235-3.
- Робин Милнер: Коммуникационные и мобильные системы: Пи-исчисление, Springer Verlag, ISBN 0-521-65869-1.
- Андрей Миронов: Теория процессов
- Валк, Рюдигер; Молдт, Дэниел; Кёлер-Бусмайер, Майкл, ред. (2011). "Глава 5: Prozessalgebra - Parallele und kommunizierende Prozesse" (PDF). Formale Grundlagen der Informatik II: Modellierung und Analyze von Informatiksystemen. Theoretische Grundlagen der Informatik (на немецком). Часть 2. Гамбургский университет. FGI2. В архиве (PDF) из оригинала на 2019-07-09. Получено 2019-07-13.