マルチスレッド、マルチプロセスの単純な説明、システムV IPC導入(ネイティブIPC)のLinux(ZZ)

マルチプロセス、マルチスレッドの簡単な説明

マルチプロセス、マルチスレッドの命令を含むパイプ通信

双方向通信名前付きパイプを使用している場合、読み取りが読みので、パイプはないに彼の息子を使用して、「書き込みを」ブロッキング「読み」するために、ブロックされている
マルチライン操作にプロセス、
読むのパイプライン:1)親プロセスこのライン1
2)児童このライン:ライト・パイプライン2

実際には、我々は、複数行の操作に関連するすべてのは、基本的な使用が達成するためにマルチスレッド、後でスレッドに戻っなど、
読むパイプライン1:メインスレッドは)1
2)倍のスレッドが:2本のパイプは、書き込み
プロセス間通信パイプ方式を経由して私たちを実装は、ブログのスレッド実装の指示があるでしょう。
上記のパイプ通信することを、私たちは親プロセスにメインスレッドを変更することができ、プロセスは二回のスレッドを処理するために変更されました

各によって使用される比較マルチプロセス及びマルチスレッドアプリケーション

スレッドおよびプロセスが並行して実行されているが、スレッド及びプロセスのそれぞれは、異なる状況で使用されます。

スレッド

すべての関連マルチラインは、我々は上記の例のように、達成するための同時実行スレッドを使用する場合、私たちは「名前付きパイプ」の双方向通信を実現し、このマルチライン操作は、理論的に達成するために、複数のスレッドを使用する必要があります。
複数回線使用スレッドより地方のコンピュータのCPUとメモリのオーバーヘッドので。

すなわち、マルチライン動作のために、同時に実行するセカンダリスレッドを作成するための目的です。

プロセス

簡単な基準は、この時点であなたは子プロセスを作成しない場合ので、あなたが新しいプログラムを実行する方法がありません、あなたはあなたのプログラムが新しいプログラムを実行するために行かなければならないことを発見した場合、この時間は、複数のプロセスが関与しなければならないということです。

新しく作成されたプロセスの子と親を同時に実行する必要がありますが、ここでの主な目的は、同時マルチライン操作を実行するのではなく、新しいプログラムを実装するために一人で行くことに、新しいプログラムの実装ではありません、我々は唯一のマルチプロセスを使用することができます動作させるために、スレッドが新しいプログラムを実行することはできませんので、動作する複数のスレッドを使用する方法はありません。

より直接的な発言は唯一の機能ではなく、新しいプログラム内のスレッドを処理する
新しいプログラムを実装するためには、目的の子プロセスの同時実行を作成することです。

System VのIPC(ネイティブIPC)

System VのIPCについて

元のプロセスの早期無名のパイプと名前付きパイプの間の比較は、すべてのUNIXシステムでは、通信(IPC)方法を提供します
が初めに初期のUnixシステムの設計。
その後、Unixシステムでは、バージョン5にアップグレードするだけでなく、申し出つの新しいIPC通信、すなわち:
・メッセージキュー
・セマフォ
・共有メモリ

System Vのは、後にLinuxはまた、UNIXにコミュニケーションのこれらの3つの手段を継承し、Unixのは非常に早い段階で、非常に良いOS、それはまた、他のOSのSystem V IPCの3に描画し、意味のシステムの第5版です。

System VのIPC機能

パイプライン(オリジナルIPC)

パイプの性質は、キャッシュの一部ですが、私たちは、匿名のパイプ、名前付きパイプや、私たちが動作するファイルディスクリプタファイルを使用しているとか、パイプラインを運営、管理するためのLinux OSカーネルファイルの形です。

パイプラインを学習するときだから我々は、パイプに加えて、パイプラインを運営し、この2つの機能、読み取りなどの他、書き込みはmkfifoとき、ioは私達の機能でファイルを開き、そう実際には、それが簡単に感じるだろう。

System VのIPC

System VのIPCとのパイプはそれができる、それは完全に異なる実装のメカニズムを使用し、System VのIPCを管理するために、カーネルファイルの形でなくなったすべての関係を提出していない、動作にはもはや使用ファイルのアプローチ異なっています。
System VのIPCのために、OSカーネルは、新しいAPIを提供します。

あなたは、System V IPCを使用すると、何も遺伝的プロセスが存在しないと言って

プロセス間のすべての通信は、あなたが通信するためのSystem V IPCを使用することができます。

System VのIPC識別子

我々が言ったように、System VのIPCは、もはや文書の形で存在していない、そこにはファイルがこの事を記述子んですが、それは類似している「識別子。」

あなたは、この「識別子」置換ファイルディスクリプタがあると考えることができますが、それは、私たちは、「識別子」を動作させるために、ファイルIO機能を使用することはできませんので、システムV IPCの使用に専用されている、唯一のSystem V IPCユニークなを使用することができます動作させるためのAPI。

この「識別子」を取得する方法

「通信構造」を作成したAPIを呼び出した後、APIは、独自の「識別子」を返します。
あなたは、「メッセージキュー」を作成した後、例えば、APIは、固有の識別メッセージ・キューを作成戻ります「識別子を。」

System VのIPC識別子の役割?

あなたがメッセージキューを作成した場合、その後、一意の識別子によって、メッセージキューを処理し、あなたがメッセージキューを使用して、作成した「メッセージ・キュー」を見つけることができ、プロセスは、書き込みデータ、およびプロセス間通信を読むことができるようになります。

公開された163元の記事 ウォン称賛94 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_43648751/article/details/104724791