4

私はこれについて完全に理解していません。たぶんこれはスタックには広すぎますが、ここにあります:

2つのプログラム(C / C ++で記述)が同時に実行されているとします。たとえば、AとBで、異なるPIDを使用します。

次に相互作用するためのオプションは何ですか。たとえば、一方が他方からの信号を待つことができるように、一方から他方に情報を渡し、それに応じて応答するにはどうすればよいですか。

私はMPIを知っていますが、MPIは通常、同じソースを使用してコンパイルされたプログラムで機能します(したがって、相互作用するように構築された完全に異なるプログラムからの相互作用よりも、並列コンピューティングで機能します)。

ありがとう

4

3 に答える 3

5

「IPC」(プロセス間通信)に注意する必要があります。いくつかのタイプがあります。

  • パイプ
  • 信号
  • 共有メモリ
  • メッセージ待ち行列
  • セマフォ
  • ファイル(@JonathanLefflerの提案による:-)
  • RPC (@sftrabbit が提案)
    通常はクライアント/サーバー向けです 。
    • コルバ
    • Dバス
于 2012-10-27T19:31:02.650 に答える
2

パイプ (1 つのアプリケーションがバイトをパイプに書き込み、もう 1 つのアプリケーションがパイプから読み取ります。stdin/stdout を想像してください) や共有メモリ (メモリの領域がプログラムの仮想アドレス空間と彼らはそれを介して通信できます)。

于 2012-10-27T19:29:16.530 に答える
0

同じソースは問題ではありません。プログラムがコンパイルされると、システムはそれらがどこから来たのかを知りません。

データの量、速度、一方向または双方向、予測可能な速度などに応じて、それらの間で通信するさまざまな方法があります....

最も簡単な方法は、おそらくネットワークを使用することです。同じマシン上にいる場合、ネットワークスタックは自動的に高性能システムを使用して実際にデータを送信することに注意してください(つまり、共有メモリ)

于 2012-10-27T19:32:56.677 に答える