Когда процесс порождает другой процесс

13

Я имею опыт работы в теории / логике сложности (где большую часть времени занимает только один процесс) и в распределенных вычислениях (где есть процессов, и один или несколько могут со временем выйти из строя). Однако теперь я хочу сказать что-то о процессе, порождающем / создающем / порождающем другой процесс. Есть ли строгость в параллельных вычислениях, операционных системах и т. Д., Что объясняет это?n

Мотивация:

Я пытаюсь построить модели, которые абстрагируют определенные особенности молекулярных взаимодействий. Я хотел бы сказать, что набор химических реакций является независимым процессом, и что на определенном этапе t он порождает другой независимый процесс S . Интуитивно понятно, что эти вещи ощущаются как независимые процессы, потому что они не контактируют друг с другом после времени t или очень мало, а только обмениваются «сообщениями».StSt

Более формально:

(1) Существуют ли уже существующие определения CS, которые охватывают понятие одного процесса, порождающего другой независимый процесс? Меня особенно интересует возможность разграничить, где останавливается и S начинается, и почему это «разумно».SS

(2) Если существует более одного ответа на (1), что вы считаете плюсом и минусом различных определений?

(Примечание: я понятия не имею, как пометить это соответствующим образом, и планирую пометить тегом в зависимости от ответов.)

Аарон Стерлинг
источник
Я всегда находил forkсистемный вызов в Unix-подобных операционных системах концептуально очень элегантным. Вы можете видеть это как атомарную операцию, которая дублирует текущий процесс. До разветвления был только один процесс , а после разветвления - два процесса S и S . Если мы упрощать вещи, S и S ' являются идентичными во всех других аспектах, за исключением того, что есть один-разрядный индикатор , который позволяет S ' знать , что это «новый» процесс в то время как S знает , что это «оригинальный» процесс. После этого S и S SSSSSSSSSможно продолжить отдельно, и они могут даже изменить себя .
Юкка Суомела
@Jukka: Спасибо :-) Было бы здорово, если бы был способ соединить то, что я делаю, с примитивом Unix.
Аарон Стерлинг

Ответы:

13

Конечно, существует множество систем для моделирования процессов. Они подпадают под категорию алгебр процессов . Ключевыми примерами являются калькуляцияπ , CCS , ACP и CSP .

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

В -исчисления отличается от других тем , что она позволяет, в сущности, процессы, которые передаются в качестве значения первого класса. Это фактически позволяет передавать имена каналов как значения первого класса, что позволяет изменять динамическую топологию. Это, вероятно, исчисление, которое вы хотите, потому что оно предлагает наибольшую динамичность.π

CSP (передача последовательных процессов) выглядит немного странно, если смотреть с точки зрения моделирования молекул. У этого есть много теории поддержки и поддержки инструмента. (Придумано CAR Hoare.)

CCS и ACP обладают меньшей динамичностью, чем калькуляция, но их гораздо проще анализировать и моделировать. Твердый набор инструментов, называемый μ CRL (и μ CRL2), доступен для ACP. Подобные инструменты обязательно существуют для CCS.πμμ

Я бы начал изучать связанную с этим работу (см. Ниже), а затем нашел бы, какой из формализмов моделирования соответствует тому, что вы ищете.

На самом деле было проведено довольно много работ по моделированию химических реакций и биологических процессов с использованием алгебры процессов. Наверное, лучшее место для поиска - это список публикаций Луки Карделли . Его целое направление исследований в области биокомпьютинга насчитывает, вероятно, 30 статей по этой теме. Этот разговор дает обзор большей части его работы. Это один немного более формальным, хотя чтение газеты это действительно единственный способ , чтобы увидеть детали.

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

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

Дэйв Кларк
источник
Могут ли сети петрисов быть также рассмотрены среди возможностей? разветвление можно смоделировать, имея место с двумя исходящими переходами.
М. Алагган
В более общем смысле, взаимодействия в стиле петри-сети можно моделировать в линейной логике (один пример, хотя и не единственный, см. «Параллельная логическая структура: фрагмент высказываний» Уоткинса и др., TYPES 2003)
Роб Симмонс,
π
@M. Алагган: На ​​первый взгляд кажется, что сети Петри могли бы сделать эту работу. Каждое место можно рассматривать как пул химикатов. Каждый переход можно рассматривать как реакцию. Таким образом, если бы у нас были места, называемые H и O и H2O, переход мог бы взять два токена из H, один из O и поместить один токен в H2O. Проблема моделирования таким образом состоит в том, что только один из каждого такого перехода может запускаться одновременно, в отличие от алгебр процессов, которые позволили бы запускать много таких переходов одновременно.
Дейв Кларк
@ Аарон: в зависимости от того, что вы пытаетесь сделать, вам могут пригодиться более современные исчисления процессов, такие как BioPEPA.
Андрас Саламон
7

Другое направление работы, которое, я считаю, связано, но не совпадает с BioComputing (к сожалению, я не слишком хорошо разбираюсь в этой области), это «мембранные вычисления».

Мое понимание мембранных вычислений состоит в том, что они используют метафоры, в значительной степени разработанные в мире процесс-caclui (ответ Дейва Кларка дал хороший набор указателей там) явно для моделирования клеточных взаимодействий. Хорошим руководством по мембранным вычислениям, вероятно, является точно названное «Руководство по мембранным вычислениям » Пауна и Розенберга в TCS. Это было несколько лет назад (и я сейчас не нахожусь внутри платного доступа для проверки), но я считаю, что некоторые модели мембранных вычислений имеют понятие «разветвления», которое должно как-то отражать клеточный митоз.

Роб Симмонс
источник
Спасибо, Роб. Насколько я знаю, работа Карделли не касается мембранных вычислений. Это больше сосредоточено на построении теории языка программирования для цепей ДНК. Я ценю указатель, но я думаю, что я ищу что-то более «основное» (то есть, само по себе никак не связанное с биологией).
Аарон Стерлинг
1
Это, безусловно, альтернатива. @Aaron: Brane Calculus Карделли lucacardelli.name/Papers/Brane%20Calculi.pdf моделирует мембраны.
Дейв Кларк
Ха! Сила краудсорсинга! Еще раз спасибо! :-)
Аарон Стерлинг