プロセスは何であるか、何それらの間のスレッドがあるとの接触のようなものはありますか?

I.はじめに

ここに画像を挿入説明
    プロセスは、プログラムが実行されるとき、それは実行時に作成され、インスタンスで、リソース割当の基本単位であるスレッドは、プログラム実行の最小単位であり、実行フローはプロセスであり、複数のスレッドからなる工程

第二に、プロセス

    プロセス:手段は、システム内で独立して動作することができる機械語命令、データ、スタック、およびアクティブエンティティの他の構成要素の集合によって形成されるリソース割当のための基本単位として独立して動作することができます。

    そのノートプロセスは、一般に3つの状態があります状態と状態の実装を待って、準備を[OR]状態をブロッキング前記 ;プロセスのみシステム階層システム内のすべてのプロセス工程れる木、親プロセスによって確立することができる。プロセスによってコマンドをサスペンド自分や他のプロセスの問題が、解放保留中のためにのみ、他のプロセスによって発行することができます。

    プロセス制御ブロック(PCB):PCB記録特性情報のみプロセス制御及び管理のためのために、オペレーティング・システムを処理できない、およびPCBプロセス、プロセスは、既知のシステムにおけるプロセス制御ブロックPCBであるかどうかに応じて、オペレーティング・システムがマークされていますプロセスが存在しますか。システムは、PCBプロセスを確立するプロセスで確立されているが、場合失効プロセスは、プロセスが物理的マーカーに特異的であるように、そのPCB、PCBプロセスを撤回し、その存在を反映します。PCBは、典型的には、情報の次の3種類を含む:情報は、プロセスを特定するステップと、プロセッサ状態情報、プロセス制御情報。

    プログラムセグメント、データ・セグメントと関連したPCB(また、プロセス印刷として知られている)のプロセス・エンティティの三つの部分により、一般的に、我々は、企業が、プロセスと呼ばれるプロセスであろう。

    プロセス特性:

  • ダイナミクス:プロセスの本質は、プログラムの実行の過程で、プロセスは動的に生成され、動的消光。
  • 並行性:任意のプロセスが他のプロセスと一緒に同時に実行することができます。
  • 独立に:プロセスが独立して動作することができる基本的な単位でなく、リソースの割り当てと独立したユニットのスケジューリングシステムです。
  • 非同期:プロセスが前進するために独立した、予測不可能なペースによって、そのプロセスの断続的な実行を持っているので、プロセス間の相互拘束、として。

ここに画像を挿入説明
    プロセスは、リソースの割り当て(CPU、メモリ、等)の基本単位であり、それはプログラムを実行したときの例です。システムは、いつプロセスを実行するプログラムを作成し、そこにリソースを割り当て、その後、プロセスレディキューにプロセスを配置します。それはCPU時間を割り当てたときにプロセススケジューラは、それを選択し、プログラムが実際に実行し始めました。

第三に、スレッド

    スレッド:スレッドは、基本単位として物理的処理、スケジューリングとディスパッチシステムです。軽量プロセスとしてLinuxの下で通します。

    スレッド・プロパティ:

  • スレッドは、実行プロセス内の比較的独立したユニットです。プロセスはタスクと呼ばれている場合、スレッドは、サブタスク・アプリケーションを実行することです。
  • スレッドは、基本ユニットがスケジュールされるが、プロセスは、スケジューリング部ではありませんので。そのため、各プロセスが作成され、それはプロセスのための少なくとも1つのスレッドを作成する必要があります。このプロセスは、そうでない場合、プロセスが実行をスケジュールできない、少なくとも1つまたは複数のスレッドで持っている必要があります。
  • プロセスとリソースの基本単位に与えられています。複数の同じプロセスを共有プロセスの資源内のスレッドが、スレッドはちょうどそれらを使用して、リソースを持っていません。
  • スレッドスケジューリングおよびライフサイクルの状態の変化のために必要な必要な情報を含まなければならないので、スレッドは、オペレーティング・システムにおける基本的なスケジューリング単位です。
  • データやファイルなどの共有リソース[]ので、スレッド間通信と同期メカニズムのため必要があるため、スレッドは他のスレッドを作成することができる必要がありますが、親子関係は、スレッド間で存在していません。

    マルチスレッド使用の状況:フロントとバックオフィス業務、非同期処理作業、ケースの実行速度を加速させる必要性、複雑な組織の仕事の場合、同時に、このような複数のユーザーのサービス要求などの状況があります。

    スレッド機構の利点:
    同じプロセスの同じアドレス空間でマルチスレッド実行、およびマルチプロセスは、次のような利点があります。

  • 作成し、破壊されたスレッドのオーバーヘッドプロセスよりも少ないです。あなたがスレッドを作成するときに作成するためのプロセスを作成し、初期化PCBテーブルながら、あなただけがそのアドレス空間と必要なリソースを確立し、関連するプロセスキューを入力し、適切なスレッド制御テーブルのエントリを作成する必要がある、またはキューについて。
  • オーバーヘッドスレッドの切り替えのプロセスがはるかに少ないCPUである場合よりも。スイッチは同じアドレス空間内のスレッドなので、あなただけがテーブルまたはスレッド制御キューを変更する必要があり、アドレス空間や他の作業を必要としません。
  • スレッド機構は、通信の有効性を増加させます。プロセス間の通信は、多くの場合、カーネルの参加なしメモリとファイルを共有し、通信メカニズムと保護メカニズムを提供するために、コアに参加するように頼まれ、同じプロセスのアドレス空間内のスレッド間通信されます。

ここに画像を挿入説明
    スレッドは、プログラム実行の最小単位である場合には、実行フローのプロセスは、CPUスケジューリングとディスパッチの基本単位が送出されています。プロセスは、すべてのスレッドプロセス間で共有リソースを、多くのスレッドで構成することができ、各スレッドは独自のスタックとローカル変数を持っています。マルチCPU環境では、CPUに依存しないで実行されるスレッドのスケジューリングは、複数のスレッドが同時に実行することができます。マルチスレッドは、各要求は、ハンドルにスレッドが割り当てられ、同様に同時操作を実現することができます。

違い第四に、プロセスとスレッド

(1)スケジューラ:

    伝統的なCaozuoxitongでは、CPUのスケジューリングとディスパッチ処理の基本単位です。CPUスケジューリングとディスパッチの基本単位としてスレッドを入れ、スレッドCaozuoxitongの導入において、プロセスは、リソースの所有者の基本的な単位としてであり、したがって、2つの特性の従来のプロセスを分離し、軽く著しく向上させることができるスレッドプログラミングを実行武装並行処理システム。同じプロセスのスレッドは、このようにスイッチングの過程原因はまだ、高価になるシステムコールを避けることが、プロセス内の別スレッドへのスレッドからの切り替えの過程で、切り替え処理が発生することはありません切り替えます。

(2)並行。

    スレッドCaozuojitongの導入の間、プロセスは実行しないだけ複雑になることがなく、従って、より効果的にシステムリソースを改善するために、Caozuojitongより良い並行処理を行う、複数のスレッド間でプロセスで同時に実行することができますそして、システムのスループット。例えば、それは何らかの理由でブロックされている唯一のファイル・サーバー・プロセスは、サービスを提供するために、他のファイルサービスのプロセスが存在しない場合は、単一のCPU Caozuojitongスレッドの導入、のために。スレッドCaozuojitongの導入では、サービスファイルサービスプロセスで複数のスレッドを設定することができます。第二のスレッドでファイルサービス処理を待機する最初のスレッドは実行を続けることができる場合、第二のスレッドがブロックされたとき、第三のスレッドが継続することができ、それによって大幅システムのファイルのサービスのスループット及び品質を向上させます量。

(3)資源を持っています:

    オペレーティングシステムスレッド、または伝統的なオペレーティングシステムの導入は、プロセスは、システムリソースの別のユニットを持つことであるかどうか、彼は自分のリソースを持つことができます。一般的に言えば、スレッドは、独自のリソース(不可欠な資源のもビット)を持つことはできませんが、それはそのメンバーシップのプロセスのリソースにアクセスすることができ、それは、コードセグメント、データ・セグメントとシステムリソースである(例えば、開いているファイルのプロセスとして、I他のすべてのスレッドに対して利用可能な/ Oデバイスなど)、同じプロセスを共有します。

(4)独立。

    独立の同じプロセス内の異なるスレッド間の独立性は、異なるプロセス間よりもはるかに低いです。これは、
プロセス間の干渉を防止し、お互いを弱体化させるために、各プロセスは、共有グローバル変数に加えて、別のアドレス空間と他のリソースを持っているが、他のプロセスへのアクセスを許可しません。しかし、別のスレッドで同じプロセスは、多くの場合、お互いの間の並行性と協力を向上させ、各スレッドは、プロセスのアドレス空間に、彼らが属しているすべてのアドレスにアクセスできるよう、彼らは、プロセスを共有メモリアドレス空間とリソースを作成しますこのようなスレッドのスタックのような他の読み取るためのスレッド、書き込み、あるいは完全に除去することができます。

(5)オーバーヘッド。

    作成または失効プロセスときなので、システムは、メモリ、I / Oデバイスなどのリソースを、再計算またはリサイクルする必要があります。したがって、この目的のためにCaozuoxitongは、作成またはスレッドを元に戻す際のコストがコストよりもかなり大きくなります支払います。同様に、スイッチングの過程で、CPU環境を実行するようにスケジュールされた新しいCPUを、環境を保存し、設定するために、現在の環境を設定すると、スレッドは、コンテンツの少量の保存のみ切り替えや設定を登録するプロセス全体を含み、およびメモリ管理を必要としません運用面で、我々が見ることができ、プロセスは、スレッド切り替えのオーバーヘッドを切り替えるのコストよりもはるかに大きいです。加えて、それらの間の同期と通信して得られた同じアドレス空間と同じプロセス内の複数のスレッドが、容易になったためです。いくつかのシステムで、Caozuoxitongカーネルの介入なしにすぐ切り替え、同期、および通信のすべてで。

(6)は、マルチプロセッサ・システムをサポートしています。

    マルチプロセッサシステムでは、関係なく、シングルスレッドのプロセス、ではない伝統的なプロセスは、どのように多くのプロセッサ、プロセスは、プロセッサ上で実行することができます。しかし、マルチスレッド・プロセスのために、それはそれらが間違いなく処理の完了を加速する実行を、平行な複数のプロセッサへの分配の過程で複数のスレッドを作ることができます。したがって、例外なく現代のプロセッサOS、マルチスレッドの導入。

公開された25元の記事 ウォン称賛7 ビュー2134

おすすめ

転載: blog.csdn.net/qq_41506111/article/details/102834267