スレッド、プロセス、マルチプロセス、マルチスレッド。並列同時識別の関係、

:処理スレッド 
1コンセプト 
スレッド:最小単位は、プログラム実行フローでは、システムに依存スケジューリングおよび割当てである基本単位CPU(別個の実験)。 
プロセス:リソース割り当ての基本単位。プロセスは、複数のスレッドを含みます。                                                          スレッドプロセス≥
2つの違い: 
1.スレッドが資源の配分とは何の関係もありませんが、それは特定のプロセスに属し、その過程で他のスレッドとリソースを共有するプロセス。 
2.各プロセスは、すべてのスレッドでその共有のリソース(データ)の独自の独立したセットがあります。 
3.サイズに関係なく、スレッドのコストは、より多くの「軽量」であることが 
、より迅速かつ効率的に処理4よりも通信のプロセス内のスレッド間の通信。(共有変数ので)

二つは、マルチスレッドおよびマルチプロセスの 
複数のスレッド:複数のスレッドが同時に実行します。ページを見ながら、ビデオを見て、音楽を聴きながら、ダウンロード中にブラウザ。 
マルチプロセス:複数のプログラムを同時に実行します。たとえば、同僚が実行 YY、QQ、などのブラウザの様々な。

。並行性と並列 
同時動作する複数のスレッドがある場合に、システムが唯一のCPUであれば、それは単に複数のスレッドを同時にtrueにすることはできません、それが唯一のCPU時間は、いくつかの期間に分割されることができ、その後、実行の各スレッドに割り当てられた時間の期間は、コード実行期間のスレッドは、他のスレッドがサスペンド状態にあります。我々は、同時(並行)を呼び出してこの方法です。

パラレル:システムに複数の持っている時に CPUを、スレッド非並行して動作することが可能です。CPUは、スレッドを実行する際に、他のCPUは、二つのスレッドが別のスレッドを実行することができるし、CPUリソースをつかむない、同時に実行することができる、我々は、このように並列(パラレル)を呼び出します。

 以下は、概念の詳細な説明であります

同時実行:

同時実行は、中に、オペレーティング・システム、期間は複数のプログラムを開始した時点での手段が完成し、これらのプログラムが同じである間に実行するために実行しているプロセッサだけの時間で実行しているが、任意の一点プロセッサ上で動作するプログラム。

並行動作する複数のスレッドが存在する場合システムは唯一のものである場合にCPU、それは単に複数のスレッドが同時に真であることができない、それだけができるCPU 実行時間を複数の期間に分割されそれぞれに割り当てられた時間のその後の期間実行のスレッド、コード実行期間のスレッドは、他のスレッドがサスペンド状態にあります。このように、我々は、同時呼び出し(同時)

パラレル:システムに複数の持っているときのCPU時間を操作が非同時実行スレッドを有することができます。ときにCPUがスレッドを実行し、他のCPUは、二つのスレッドが別のスレッドを実行することが可能とつかむないCPUのリソースを、同時に行うことができる、我々は、このように並列呼び出し(平行)

差:二つの平行と同時、すなわち、同時に起こる2枚以上の平行なイベントを参照して、類似するが異なる概念である;及び同じ時間間隔で発生する二つ以上の同時イベントを指します。マルチプログラミング環境では、並行処理が同時に巨視的に実行するプログラムの複数の時間の期間を意味するが、単一プロセッサ・システム、それが唯一のプログラムの実行を持つたびに、それは顕微鏡のみ、これらのプログラムであります共有は交互に行うことができます。場合、コンピュータシステムは、複数の有するプロセッサ、プログラムを同時に達成するために、複数のプロセッサに割り当てることができます実行することができる並列実行を多重するように、即ち、処理プログラムに各プロセッサの使用は、同時に実行することができますプログラムを同時に実行することができます

 

プロセス:

狭い定義:プロセスが実行中のプログラム(のインスタンスである実行されているコンピュータプログラムのインスタンス)。

大まかに定義された:プロセスが実行される活動は、データ収集プログラムに別々の機能を持っている必要があります。それは、オペレーティングシステムの動的実行基本単位伝統的に、オペレーティング・システム、プロセスは、両方の基本であるアロケーションユニット、実行の基本単位です。

プロセスの2つの主要な概念があります:最初、プロセスが実体です。各プロセスには含めて通常の状況の下で、独自のアドレス空間を持つテキストエリア(テキスト領域)、データ領域(データ領域)とスタックスタック領域)。コードは、プロセッサ記憶されたテキスト領域で実行され、実行プロセス変数の間に使用される、動的に割り当てられたメモリ領域のデータを格納する、領域ストア命令と呼び出し手順活動のローカル変数をスタック。第二に、プロセスは、プログラムを実行しますプログラムが死んエンティティ、だけで処理我々は呼んで、生命のプログラムに接続されたデバイスが、それがアクティブなエンティティになることができます(オペレーティングシステムの実行)プロセスを [3] 

オペレーティング・システム・プロセスは、基本的で重要な概念です。システムが導入された各チャネル・プログラム内概念システム活動パターンを記述し、現れたマルチチャネル・プログラムが内部システムのダイナミクスを特徴付けるために表示された後すべてのマルチプログラミングオペレーティングシステムがプロセスに基づいています。

スレッド

スレッド(英語:スレッド)は、オペレーティング・システム操作が可能なスケジューリングの最小単位。それに含まれるのプロセスであり、それは処理ユニットの実際の動作を制御します。スレッドを指すプロセス制御、複数のスレッドが同時に、並行して各スレッドが異なるタスクを実行するプロセスの単一の一連の流れです。UNIX System VのSunOSのそれはまたのような軽量プロセス(と呼ばれる軽量プロセス)が、より軽量プロセスは、スレッド(カーネルを指しカーネルスレッドをユーザスレッド(一方で、)ユーザースレッドは)、スレッドと呼ばれます。

スレッドは、スケジューリングと独立の派遣の基本単位です。オペレーティング・システムのカーネルスレッドは、次のようなカーネルスレッド、スケジュールすることができるのWin32 スレッドを、自発的になど、ユーザプロセススケジューリングユーザスレッドによるのLinux プラットフォームで、POSIXスレッド、またはにより、カーネルなど、ユーザーのプロセス、Windows 7の糸、混合スケジューリング。

同じプロセスの複数のスレッドは、仮想アドレス空間、などのプロセスのすべてのシステムリソースを共有するファイル記述子、及び信号処理ように、そして。しかし、同じプロセスで複数のスレッドには、独自の持っているコールスタックをコールスタック)、ご使用の環境(登録登録コンテキストを)、自身のスレッドローカルストレージ(スレッドローカルストレージ)。

このプロセスは、異なるタスクを実行するために並列に各スレッドを、スレッドの多くを持つことができます。

マルチコア又はマルチにおいて CPU 、またはサポートハイパースレッディングCPUのマルチスレッドプログラムの設計を使用する利点は、それがプログラムのスループットの実行を強化することである、明らかです。単独でCPU シングルコアのコンピュータ上で、マルチスレッド技術の使用は、プロセスは他にも責任を負うことができるI / Oの処理、人間とコンピュータの相互作用およびしばしばために特別に書かれた別の実施の計算集約的部分の一部、ブロックされた主力の集中実行スレッド計算は、それによってプログラムの実行の効率を高めます。

おすすめ

転載: www.cnblogs.com/sdyxlyb22/p/11604606.html