プロセスとスレッドの違い:
プロセスでは、子プロセスは親プロセスのコピーである、親プロセスから親プロセスのコピーを入手ところ、データ・スペース、ヒープとスタック。
スレッドは、プロセスに関して、概念近い実装体にあり、他のスレッドとの間で直接プロセスとデータを共有することができるだけでなく、それ自身のスタック領域、独立配列を有します。
共通の事:彼らは、同時実行の手続きを改善するプロセスの効率性と応答時間を改善することができます。スレッドとプロセスが使用中の利点と欠点を持っています。スレッドの実行はオーバーヘッドが比較的小さいが、資源の管理と保全に資するものではなく、プロセスです。同時に、スレッドは、SMPマシン上で実行するために、プロセスがマシン間で移行することができます。
それらの基本的な違いは、各工程で複数のプロセスが独自のアドレス空間を有し、スレッドが共有アドレス空間であることです。他のすべての違いは、この違いのために生成されます。例えば:
1.速度。彼らは同じアドレス空間であるため、スピードスレッドは、高速での高速通信、高速スイッチングを生産しました。
2.優れたリソース使用率を通します。
3.プロセスをメモリに必要な同期機構のパブリック変数またはスレッドを使用して、ではありません。
そして、彼らはまだ通信の違い、この根本的な原因によるものですされています。
通信システムとの間の差
根本的な原因なので、実際には、唯一のプロセス間通信のニーズ、同じプロセス・スレッドの共有アドレス空間は、通信するが、共有グローバル変数を保護するために、同期/排他制御を行うために必要はありません。
それは、プロセス間通信信号、パイプラインパイプまたは共有メモリであるかどうか、オペレーティングシステム、システムコールによって保証されています。
プロセス間の通信
1.ダクト(パイプ):
パイプは半二重通信モードは、データが一方向にしか流れているが、唯一の間の遺伝的関係を有するプロセスで使用することができます。親族プロセスは通常、親子関係のプロセスを意味します。
2.名前付きパイプ(名前付きパイプ):
名前付きパイプは、半二重通信であるが、親族のプロセス間で通信を可能にしません。
3.信号(sinal)
信号は受信処理を通知するために使用されるイベントが発生した、通信のより洗練された手段です。
4.セマフォ(semophore):
セマフォはカウンタである、複数のプロセスは、共有リソースへのアクセスを制御するために使用することができます。それは、多くの場合、共有リソースへのアクセスを防止するためのロック機構として使用される他のプロセスは、リソースにアクセスすることができ、プロセスです。同じプロセス内の異なるスレッド間のプロセス間の同期手段、並びにそのため、メイン。
メッセージキュー(メッセージキューは):
メッセージキューは、カーネルに格納されたメッセージキュー識別子によって、メッセージのリンクリストです。シグナリングメッセージは、搬送パイプ無地バイトストリームバッファサイズが制限され、より少ない情報を克服し、そして他の欠点キュー。
前記共有メモリ(共有メモリ):
共有メモリはメモリであり、処理によって作成されたこの共有メモリを他のプロセスがアクセスすることができる期間をマッピングされたが、複数のプロセスによってアクセスすることができます。IPC共有メモリは、それが具体的に設計された低効率を実行している他のプロセス間通信のためのものである、最速の方法です。これは、多くの場合、プロセス間の同期通信を達成するために組み合わせて使用セマフォなどの他の通信メカニズムと関連しています。
7.ソケット(ソケット):
ソケットは、様々な他の通信機構と、プロセス間通信機構では、異なるデバイス間のプロセス間通信のために使用することができることです。
第二に、スレッド間通信
1.ロック機構:ミューテックス、条件変数、読み取り - 書き込みロック
1.ミューテックスが方法が提供されるが、排他的に同時にデータ構造を修飾することが防止されます。
2.読み書きロックは、共有データへの複数のスレッドを同時に読み取ることができ、書き込み動作は、相互に排他的です。
一定の条件がこれまでに真になるまで3条件変数は、アトミックプロセスをブロックすることができます。試験条件は、ミューテックスの保護下に行われます。常にミューテックスと一緒に条件変数を使用します。
2.信号機構(セマフォ):スレッド名前セマフォを含み、セマフォスレッド名付け
前記シグナリング機構(信号):同様のプロセスとの間の信号処理は、イベントが発生した受信スレッドに通知するために使用されます。
スレッド同期、通信機構のためのスレッド間の通信の主な目的は、スレッドは、データ交換のための通信のプロセスのようにしないように。