一般的に使用されるプロセス間通信

1.パイプ(パイプ):パイプは、アフィニティを持つプロセス間の通信に使用でき、プロセスと、共通の祖先を持つ別のプロセスとの間の通信を可能にします。
2.名前付きパイプ:名前付きパイプは、パイプに名前がないという制限を克服します。したがって、パイプの機能に加えて、無関係なプロセス間の通信も可能にします。名前付きパイプには、ファイルシステム内で対応するファイル名があります。名前付きパイプは、コマンドmkfifoまたはシステム呼び出しmkfifoによって作成されます。
3.信号(信号):信号は、特定のイベントが発生したことを受信プロセスに通知するために使用される、より複雑な通信方法です。プロセス間通信に加えて、プロセスはプロセス自体に信号を送信することもできます。
4.メッセージ(メッセージ)キュー:メッセージキューは、PosixメッセージキューシステムVメッセージキューを含むメッセージのリンクリストです。十分な権限を持つプロセスはキューにメッセージを追加でき、読み取り権限を持つプロセスはキュー内のメッセージを読み取ることができます。メッセージキューは、より少ない情報を伝送する信号の欠点を克服し、パイプはフォーマットされていないバイトストリームのみを伝送でき、バッファサイズが制限されます。メッセージキューはレコード指向であり、その中のメッセージには特定の形式と特定の優先度があります。メッセージキューは、送信プロセスと受信プロセスから独立しています。プロセスが終了しても、メッセージキューとその内容は削除されません。メッセージキューは、メッセージのランダムクエリを実現できます。メッセージは、先着順で読み取る必要はありませんが、メッセージの種類に応じて読み取ることもできます。
5.共有メモリ:複数のプロセスが同じメモリスペースにアクセスできるようにします。これは、利用可能なIPCの最速の形式です。これは、他の通信メカニズムの効率が低いように設計されています。これは、プロセス間の同期と相互排除を実現するために、セマフォなどの他の通信メカニズムと組み合わせて使用​​されることがよくあります。同期する必要があります。
6.セマフォ:主にプロセス間および同じプロセスの異なるスレッド間の同期手段として使用されます。プロセス間でデータを転送するには、共有メモリを組み合わせる必要があります。セマフォはオペレーティングシステムのPV操作に基づいており、セマフォでのプログラムの操作はすべてアトミック操作です。セマフォでの各PV操作は、セマフォ値に1を加算または1を減算することに限定されず、任意の正の整数を加算または減算できます。セマフォグループをサポートします。
7.ソケット(ソケット):異なるマシン間のプロセス間通信に使用できる、より一般的なプロセス間通信メカニズム。もともとはUnixシステムのBSDブランチによって開発されましたが、現在では一般的に他のUnixのようなシステムに移植できます。LinuxとSystemVの両方のバリアントがソケットをサポートしています。

おすすめ

転載: blog.51cto.com/14289397/2540762