プロセス間通信とスレッド間通信

スレッド間通信:マルチスレッド共有アドレス空間とデータ空間ので、そう複数のスレッド間の通信は、スレッドのデータではなく、オペレーティングシステムを介してよりも、他のスレッドに直接提供してもよいです。

主な方法のように、スレッド間の通信や同期ロック、信号、セマフォ

プロセス間通信は、そのデータ空間の独立性は、その通信が比較的複雑であると判断し、オペレーティングシステムを必要とし、異なっています。

通信機構は、次のとおりパイプ、名前付きパイプ、メッセージキュー、セマフォ、共有スペース、信号、ソケット(ソケット)。

はじめに1. Linuxでのプロセス間通信のいくつかの主要な手段:

パイプ(パイプ)と名前付きパイプ(名前付きパイプ):パイプが名前のない制限パイプラインを克服するために、名前付きパイプを親族プロセス間通信を有するように使用することができ、従って、機能を有するパイプに加えて、それはまた、無関係可能プロセス間通信。

信号(シグナル):信号が通知プロセスを受信するためのより複雑な通信モードは、いくつかのイベントは、プロセスは、プロセス自体にシグナルを送ることができ、プロセス間通信を除き、発生したであり、Linuxは、早期の機能シーガルのサポートに加えて、UNIXのセマンティクスを知らせますサポート信号は、sigaction関数のセマンティクスは(BSD順序は信頼できる信号機構を達成するだけでなく、信号の機能を再実装するための外部インターフェース、使用は、sigaction関数を統一するために、実際に、機能は、BSDに基づいている)POSIX.1標準に準拠します。

メッセージ(メッセージ)キュー(メッセージキュー):メッセージ・キュー・テーブルは、メッセージキューのPosixシステムVメッセージキューを含む、メッセージをリンクされています。キューにメッセージを追加することができ、十分な権利のプロセスを持っている、あなたがキューに読み取り、メッセージを行くことができるプロセスの読み取り権限を与えられました。信号は、メッセージを担持するだけ搬送パイプ無地バイトストリームバッファサイズが制限され、少量の情報を克服し、そして他の欠点キュー。

共有メモリ:複数のプロセスが同じメモリ空間にアクセスすることができることができ、利用できるIPCの最速の形です。他の通信機構のための効率的な設計ではありません。しばしば、そのような他の通信機構と組み合わせてセマフォとして、プロセス間の同期や相互排除を達成します。

セマフォ(セマフォ):主にプロセス間の同期化の手段としてだけでなく、同じプロセス内の異なるスレッド間。

ソケット(ソケット):より一般的なプロセス間通信メカニズムが異なるマシン間のプロセス間通信のために使用することができます。もともとはBSD Unixシステムの分岐アウトによって開発されたが、それらは一般的に他のUnixライクなシステムに移植されました:LinuxとSystem Vのサポートソケットをバリアント。

スレッド同期、通信機構のためのスレッド間の通信の主な目的は、スレッドは、データ交換のための通信のプロセスのようにしないように。

2. Linuxシステムでは、スレッド間通信は、主に以下のとおりであります:

ロック機構:ミューテックス、条件変数、読み書きロック、スピンロックを備えます。

ミューテックスは、同じ時間に共有リソースへの一つのスレッドだけのアクセスを確保します。ロックがスレッドにそれらをロックしようとして占有されている場合(状態で待機状態にそれを実行するためにCPUを解放)状態にブロックされています。ロックが解除されると待機しているスレッドは、どのようなカーネルのスケジューリングに応じて、ロックを取得することができました。

任意のスレッドで書き込みモードとロックで読み書きロックは、(読み取りまたは書き込みのいずれか)のロック状態を書き込む全てをブロックしようとしたときに、読み出しモードの読み出しモードとロックでの状態は、スレッドがブロックされていない「読み取る」とき。」書き込み「スレッドをブロックします。共有モードを読んで、書き込みモードは相互に排他的です。

一定の条件がこれまでに真になるまで条件変数は、アトミックプロセスをブロックすることができます。試験条件は、ミューテックスの保護下に行われます。常にミューテックスと一緒に条件変数を使用します。

スレッドのスピンロックが阻止閉塞をロックしたときではなく、ループのポーリングあなたはロック、ノースレッドスイッチを取得していないので、オーバーヘッドの切り替えが、CPUの占有は、CPUリソースの浪費につながることができるかどうかを確認しました。スピンロックパラレル(複数のプロセッサ)構造または適切なロック所望スレッドスイッチの場合にはオーバーヘッド発生させることなく、短時間に保持されます。

セマフォメカニズム(セマフォ):スレッド無名のセマフォが含まれており、セマフォスレッドの名前

シグナリング機構(信号):同様のプロセス間の信号処理

参照

https://blog.csdn.net/liu5320102/article/details/50764645

https://blog.csdn.net/cneaglelee/article/details/7943021

https://blog.csdn.net/sinat_34166518/article/details/82744410

公開された137元の記事 ウォン称賛44 ビュー30000 +

おすすめ

転載: blog.csdn.net/qq_38769551/article/details/105147897