1人の関係およびプロセスとスレッドとの間の差、プロセス間通信方法、どのようにスレッド間通信

2.1 定義

プロセスは:プロセスは、プロセッサ上のプログラムの実行であり、これは、システムリソースの割り当てとスケジューリングの独立したユニットであり、動的な概念です。

スレッド:物理的プロセス、操作スケジューリングはCPUの基本単位であり、それは独立して動作することができる基本的な単位のプロセスよりも小さくなっています。基本的に、スレッドは、独自のシステムリソースを所有していない、(このようなプログラムカウンタ、レジスタやスタックのセットなど)に不可欠なリソースの操作に少しだけを持っていますが、それはすべてのリソースの同じプロセスに属する他のスレッドとプロセスを共有する必要があります。

 

2.2 リレーションズ

スレッドが作成され、別のスレッドを破壊することができ、同じプロセス内で複数のスレッド間で同時に実行することができます。

比較的プロセスでは、スレッドは、同じプロセス内の他のスレッドとデータを共有しますが、独自の持っていることができ、実行するために体の概念に近いスタックスペース、独立した実行順序を

 

1.3  の違い

(1)、アドレス空間:このプロセスのアドレス空間を共有するのと同じプロセスのスレッド、およびプロセス間では、別のアドレス空間です。

同じプロセスこのプロセスの共有リソーススレッドが、プロセス間のリソースは独立して:(2)、リソースを持っています。

(3)、プロセスがクラッシュした後、それは、保護モードで他のプロセスに影響を与えないが、全体のプロセススレッドの崩壊は死んでいます。だから、マルチプロセス、他のものより堅牢なマルチスレッド。

(4)において、スイッチング、資源消費、高効率のプロセス。だから、プロセス内の頻繁な切り替え、より有効に活用スレッドに来るとき。同時に要求され、特定の変数の同時動作を共有する必要がある場合は同様に、唯一のスレッドは、プロセスで使用することはできません。

(5)実行:シーケンスプログラムの実行順序と入口を実行している各個々のプロセス流入路。スレッドが独立して実行することはできません。しかし、それはアプリケーションによって制御される複数の実行スレッドを提供し、アプリケーションに応じて存在している必要があります。

(6)、スレッドは、基本単位プロセッサスケジューリングであるが、プロセスではありません。

 

2.4 、コミュニケーションのプロセス:

(1) パイプ(管) 

パイプは半二重通信モードでは、データは一方向にしか流れだけ間の遺伝的関係を有するプロセスで使用することができます。親族プロセスは通常、親子関係のプロセスを意味します。

(2) 名前付きパイプ(名前付きパイプ): 

名前付きパイプは半二重通信であるが、親族のプロセス間で通信を可能にしません。

(3) 信号量(semophore): 

セマフォは、複数のプロセスが共有リソースへのアクセスを制御するために使用することができ、カウンタです。それは、多くの場合、共有リソースへのアクセスを防止するためのロック機構として使用される他のプロセスは、リソースにアクセスすることができ、プロセスです。したがって、メインならびにプロセス間の同期は、同じプロセス内の異なるスレッド間意味します。

(4) メッセージキュー(メッセージキュー): 

メッセージキューは、カーネルに格納されたメッセージキュー識別子によって、メッセージのリンクリストです。メッセージキューが少ない情報を克服シグナリングのみ搬送パイプ無地バイトストリームバッファのサイズが制限され、そして他の欠点。

(5) 信号(sinal): 

信号は受信処理を通知するために使用されるイベントが発生した、通信のより洗練された手段です。

(6) 共有メモリ(共有メモリ) 

共有メモリは、メモリマップされたいくつかのプロセスによって作成されたこの共有メモリは、他のプロセスがアクセスすることができるが、複数のプロセスによってアクセス可能です。IPC共有メモリは、それが具体的に設計された低効率を実行している他のプロセス間通信のためのものである、最速の方法です。これは、多くの場合、プロセス間の同期通信を達成するために組み合わせて使用​​される他の通信機構、例えば2つの信号、に関連しています。

(7)が、ソケット(ソケット): 

種々の他の通信メカニズムは、それが別のデバイスとの間のプロセス間通信のために使用することができることであるとソケットは、プロセス間通信機構です。 

 

スレッド間通信2.5

(1)、ロック機構:ミューテックス、条件変数、読み取り-書き込みロックを含みます

。ミューテックスは、方法は、排他的に同時にデータ構造を修飾することが防止されて設けられています。

B.読み書きロックを同時に読み取る共有データへの複数のスレッドを可能にし、書き込み動作は、相互に排他的です。

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

(2)、セマフォ機構(セマフォ):名前セマフォスレッドとスレッド名前セマフォを含みます

(3)、シグナル伝達機構(信号):同様のプロセスは、主にスレッドの同期のために使用されるスレッドの間での信号処理との間の通信の目的は、スレッドは、通信のためのデータ交換プロセス通信機構を好きではありません。

 

パラレル:同時に実行している2つのタスク(複数のCPU)

同時実行は:同時に二つのタスクを実行する要求を指し、プロセッサは1つのタスクだけを受け入れることができ、2はCPUのタイムスライスが短時間に実行するため、スケジュールされたタスクを実行するためにターンを取るだろう、それは、同時に2つのタスクを実行するために感じるだろう。

おすすめ

転載: www.cnblogs.com/Latiny/p/10655520.html