プロセスが別のプロセスを生成するとき


13

私のバックグラウンドは、複雑性理論/ロジック(ほとんどの場合プロセスが1つだけである)、および分散コンピューティング(プロセスがあり、1つ以上が時間とともに失敗する可能性がある)です。しかし、私はプロセスが別のプロセスを生成/作成/スピンオフすることについて何か言いたいと思っています。並列コンピューティング、オペレーティングシステムなどでこれを説明する厳密さがありますか?n

動機:

分子相互作用の特定の特徴を抽象化するモデルを構築しようとしています。化学反応のセットは独立したプロセスであり、特定の時間ステップで別の独立したプロセスが生成されると言いたいと思います。直観的には、これらのものは独立したプロセスのように感じられます。なぜなら、それらは時間後に互いに接触しないか、または「メッセージ」を交換するだけで、接触がほとんどないためです。StSt

より正式には:

(1)1つのプロセスが別の独立したプロセスを生成するという概念をキャプチャする既存のCS定義はありますか?私は、が停止してが開始する場所と、それが「合理的」である理由を区別できることに特に興味があります。SS

(2)(1)に複数の答えがある場合、さまざまな定義の長所と短所をどのように考えますか?

(注:これを適切にタグ付けする方法がわからず、回答に応じてタグ付けし直す予定です。)


私はいつも発見したforkUnixライクな概念的に非常にエレガントなオペレーティングシステムでシステムコールを。現在のプロセスを複製するアトミック操作として見ることができます。フォークの前にはプロセスが1つしかありませんでしたが、フォークの後には2つのプロセスとます。物事を単純化しすぎると、とは他のすべての面で同一になりますが、が「新しい」プロセスであることを知らせ、が「オリジナル」プロセスであることを知らせる1ビットインジケータがあります。その後、とは別々に続行でき、さらにSSSSSSSSS自分自身を変更します。
ユッカスオメラ

@Jukka:ありがとう:-)私がやっていることをUnixプリミティブに接続する方法があったらいいのに。
アーロンスターリング

回答:


13

もちろん、プロセスをモデリングするための多くのシステムがあります。これらはプロセス代数のカテゴリーに分類されます。主な例は、計算πCCSACP、およびCSPです。

プロセス計算には、メッセージの送受信(同期または非同期)、並列プロセスの作成、動作間の非決定的な選択、プロセスの複製など、プロセスの動作を指定するための基本的なメカニズムがあります。結石は構造の数に関しては小さいですが、非常に表現力があり、その特性の研究に膨大な量の研究が行われています。

それが可能にすることで他から-calculus異なるが、本質的に、第一のクラスの値として渡されるプロセス。実際には、チャネル名をファーストクラス値として渡すことができ、動的トポロジの変更が可能になります。これはおそらく最大の動的性を提供するため、必要な計算です。π

CSP(逐次プロセスの通信)は、分子のモデリングの観点から見ると少し奇妙です。多数の裏付け理論とツールのサポートがあります。(CAR Hoareによって発明されました。)

CCSとACPは、計算よりも動的性は低くなりますが、分析とシミュレーションははるかに簡単です。呼ばれる固体ツールセットμ CRL(およびμ CRL2)は、ACPのために用意されています。CCSには同様のツールが必ず存在します。πμμ

関連する作業の調査を開始し(以下を参照)、どのモデリング形式があなたが探しているものに合うかを見つけます。

実際、プロセス代数を使用して化学反応と生物学的プロセスをモデル化する作業は非常に多くあります。おそらく最適な場所はLuca Cardelliの出版物リストです。バイオコンピューティングに関する彼の一連の研究には、おそらくこのトピックに関する30の論文があります。この講演では、彼の作品の多くの概要を説明します。この1は、新聞を読むことは本当に詳細を確認する唯一の方法ですが、少しフォーマルなです。

化学プロセスを直接モデル化する1つのアプローチは、CHAM(化学抽象マシン)です。ここで重要な成分は、分子と膜のソリューションです。分子の再配列とジャンクの除去には、加熱と冷却のルールがあります。これらのルールは可逆です。最後に、反応をモデル化する反応ルールがあります。プロセス代数とは対照的に、CHAMモデルはプロセスの構文についてそれほど心配していないので、分子の独自の表現を考案できます。

ツールセットで実現された書き換えロジックMaudeは、このような反応を指定するための別の多かれ少なかれ直接的なアプローチを提供します。書き換えルールを指定するだけで、「スープ」の処理は自動的に行われます。このツールセットにより、(小さな)化学反応のシミュレーションと分析が可能になります。Maudeの確率的バリアントも存在します。


ペトリネットも可能性の中にあると考えられますか?分岐は、2つの発信遷移を持つ場所を持つことでモデル化できます。
M.アラガン

より一般的には、ペトリネットスタイルのインタラクションは線形論理でモデル化できます(1つだけではありませんが、ワトキンスらによる「並行論理フレームワーク:命題フラグメント」、TYPES 2003を参照)
Rob Simmons

π

@M。Alaggan:表面的には、ペトリネットがその役割を果たしているようです。各場所は、化学物質のプールと見なすことができます。各遷移は反応と見なすことができます。したがって、HとOおよびH2Oという場所がある場合、トランジションは、Hから2つのトークンをOから1つ取得し、1つのトークンをH2Oに入れることができます。この方法でのモデリングの問題は、一度に多くのそのような遷移を起動できるプロセス代数とは対照的に、そのような各遷移の1つだけが同時に起動できることです。
デイブクラーク

@Aaron:あなたが何をしようとしているのかにもよりますが、BioPEPAのようなより現代的なプロセス計算が役に立つかもしれません。
アンドラスサラモン

7

BioComputingに関連しているが同じではない(残念ながら、私はこの分野にあまり精通していない)もう1つの仕事は、「膜コンピューティング」です。

メンブレンコンピューティングの私の理解は、プロセス相互作用の世界で大部分が開発したメタファー(Dave Clarkeの答えがそこに良いポインタを与えた)を明示的に使用して、細胞相互作用をモデル化することです。メンブレンコンピューティングの優れたガイドは、おそらくTCSのPaunとRozenbergによる適切な名前のAメンブレンコンピューティングガイドです。それは数年前でした(そして、私は現時点でペイウォールの内側にいるわけではありません)が、膜コンピューティングの一部のモデルには、細胞分裂を何らかの形で反映する「分岐」の概念があると思います。


ありがとう、ロブ。Cardelliの研究は、私が知る限り、メンブレンコンピューティングには触れていません。DNA回路のプログラミング言語理論の構築に重点を置いています。私はその指針に感謝していますが、もっと「主流」なものを探しているのではないかと思います(それ自体がバイオ関連ではないという意味です)。
アーロンスターリング

1
これは確かに代替手段です。@Aaron:CardelliのBrane Calculus lucacardelli.name/Papers/Brane%20Calculi.pdfは膜をモデル化します。
デイブクラーク

ハ!クラウドソーシングの力!再度、感謝します!:
アーロンスターリング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.