LinuxおよびWindowsでのプロセス間の通信のいくつかの主な方法

Linuxプロセス通信方式:

a)パイプ(パイプ):名前付きパイプ:パイプは、アフィニティを持つプロセス間の通信に使用できます。有名なパイプは、パイプに名前がないという制限を克服しています。したがって、パイプの機能に加えて、関連のないプロセス間の通信;
b)シグナル(シグナル):シグナルはより複雑な通信方法であり、特定のイベントが発生したことを受信プロセスに通知するために使用されます。プロセス間通信に加えて、プロセスはプロセス自体にシグナルを送信することもできます。関数sigalに加えて、その意味がPosix.1標準に準拠しているシグナル関数sigactionもサポートしています(実際、この関数はBSDに基づいています。信頼できるシグナルメカニズムを実現するために、BSDは外部インターフェイスを統合し、シグナル関数をsigaction関数で再実装できます)。
c)メッセージ(メッセージキュー):メッセージキューは、PosixメッセージキューシステムVメッセージキューを含む、メッセージのリンクリストです。十分な権限を持つプロセスはメッセージをキューに追加でき、読み取り権限を持つプロセスはキュー内のメッセージを読み取ることができます。メッセージキューは、情報が少ない信号の欠点を克服し、パイプはフォーマットされていないバイトストリームと限られたバッファサイズしか伝送できません。
d)共有メモリ:複数のプロセスが同じメモリ空間にアクセスできるようにします。これは、利用可能なIPCの最速の形式です。他の通信メカニズムの低効率のために設計されています。プロセス間の同期と相互排除を実現するために、セマフォなどの他の通信メカニズムと組み合わせて使用​​されることがよくあります。
e)セマフォ:主に、プロセスと同じプロセスの異なるスレッド間の同期の手段として使用されます。
f)ソケット:異なるマシン間のプロセス間通信に使用できる、より一般的なプロセス間通信メカニズム。もともとはUnixシステムのBSDブランチによって開発されましたが、現在は一般に他のUnixライクなシステムに移植できます。LinuxとSystem Vの両方のバリアントがソケットをサポートしています。

Linuxスレッド間の通信:ミューテックス、セマフォ、条件変数
Windowsスレッド間の通信:クリティカルセクション(クリティカルセクション)、ミューテックス(ミューテックス)、セマフォ(セマフォ)、イベント(イベント)
Windowsプロセス間通信:パイプ、メモリ共有、メッセージキュー、セマフォ、ソケット
Windowsプロセスとスレッドに共通するもの:セマフォとメッセージ(イベント)

心が花や木のように

おすすめ

転載: blog.csdn.net/nbcsdn/article/details/104281994