質問

  1. メッセージキュー、共有メモリ、セマフォの中でどのIPCがネットワークIPCに変換するのが最も簡単で、最も困難です。

  2. System V共有メモリをネットワークIPCに、またはPosix共有メモリをネットワークIPCに変換する方が簡単ですか

役に立ちましたか?

解決

ヘンリック・グスタフソンが言ったように:

  1. メッセージキューは、ネットワークに変換する最も簡単なIPCメカニズムです。セマフォはデータを伝達するようには設計されておらず、共有メモリは通常、セマフォで制御されたアクセス(または同等のメカニズム)を必要とするため、ネットワーク全体はもちろんのこと、単一のマシンでも適切に制御できます。とはいえ、System Vメッセージキューは、おそらく最も広く使用されていないIPCメカニズムです。

  2. 共有メモリメカニズムの変換はほぼ同様に困難です。注意すべき重要な点は、実際には「ちょうど共有メモリ」を使用することはほとんどないということです。使用中の他の同期ツールもあります。

他のヒント

  1. メッセージキューで実行する操作は、ソケット操作とほとんど同じマッピングに基づいているため、メッセージキューは断然優れていると思います。
  2. おそらく同様に難しいことですが、メッセージキューなど、shmの上に、もう少しネットワークフレンドリーな抽象化を実装することをお勧めします。共有メモリは、ネットワーク対応の実装はいくつかありますが、ネットワークにはあまり適していませんが、私が出会ったのは確かに漏れやすい抽象化です。
  1. セマフォは実際には通信メカニズムではなく、同期用です。共有メモリはネットワーク経由で使用できます(分散共有メモリ)が、それは非常に困難です実装します。メッセージキューは、ネットワークソケットに直接マップされるため、簡単です。

  2. それはおそらくかなり似た難易度でしょう。どちらのAPIも似ていますが、インターフェースが異なります。

(1)。最も簡単なのはメッセージキューで、最も難しいのは共有メモリです。

メッセージキューにはメッセージキューデータ構造体へのポインタが必要なだけだと思います異なるマシン。

(2)。 Posix共有メモリは、System V共有メモリをネットワークIPCに変換するよりも簡単です。

Posixはメモリベースのセマフォと名前付きセマフォの両方をサポートし、カーネルの介入を必要としないのに対し、System VはOSの介入を必要とするためだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top