より単純な理解CPU、マルチコア、マルチプロセス、マルチスレッドならびにプロセスとスレッドとの相違点より

これらの問題に直面したとき、2つのキーワードがあり、バイパス、それがあることはできないパラレル同時

まず第一に、我々は最初のいくつかの概念を理解する必要があります。

  図1に示すように、プロセスは、プログラムを実行しています。

  図2に示すように、プロセスは、リソース割り当ての基本単位です。

  図3に示すように、プロセスは、複数のスレッドを含むことができます。

  図4に示すように、単一CPUコンピュータに、リソースがされている平行複数のプログラムが使用しない CPU:。

  5、オペレーティングシステムのスケジューラ:スプリットCPUが割り当てられて左折するのではなく、タイムスライスにセクションを実行している同じ手順を。

  図6に示すように、オペレーティングシステムのメモリ管理モジュール:物理メモリ、仮想メモリに関連する事項の管理。

  CPUだけの時間で処理を実行することができるので、私たちが制御されていない場合、実行の最後まで、プロセスCPUを使用することが可能であるため、オペレーティングシステムのスケジューラがあり、そしてプロセスは、ディスパッチ・ユニットとなっています。

  プロセスを実行するとCPU、だけでなく、メモリああ、ああカード、GPS、ああ、ああディスク、などなど、他の資源、多くのではないだけを必要とし、総称してアプリケーションコンテキストで実行環境プログラムと呼ばれます。

  ここで発生するプロセスで使用される速度の異なるCPUへの切り替えを同時スケジューラの概念を、それがユーザプログラムに思えるので、これは複雑である、同時に実行されているが、実際には、同時にCPUを実行している、非常に高速のプロセス。同時だけで、実際に単一の実行で、常にループを感じてすぐに仕事にCPUは、同時に発生するので、理由は、偽の現象を提供します。

  プロセスは同じCPU時間を共有することはできませんが、我々は、CPUのニーズにそれを共有して表示される必要がありますか?このとき、スレッドの概念が登場しました。スレッドは、プロセス共有CPUとプログラムコンテキストの異なるスレッド間でプロセスに含まれています。(プロセスに割り当てられたリソースの共有)

  単一のスケジューリング処理のためのCPU時間は、必要であるプログラムの実行コンテキスト保存+ +コンテキスト読み取るために、スイッチングすなわち、プロセス。

  これはシングルコアCPUである場合には、使用CPUコアに順にプロセス内の異なるスレッド、それは、多く未満のオーバーヘッドを切り替えるスレッド切替処理スレッドスイッチにするが、共有プログラム実行環境によるものだろう。ここではまだ一つだけのスレッドを実行することができる唯一のコアと同じ時間によって複雑になります。

        スレッドの切り替え処理は、スイッチスレッドに多くのリソースを必要とし、まだリソースが速いスピード、小さなフットプリントを切り替え、共有、スレッドの内容がプライバシーであるされているので、理由は、いくつかのコンテキスト情報、およびスタック情報を保存するために、非常に少ないメモリを取ります切り替えすばやく、リソースを共有するプロセスを切り替えるために、すぐに別のスレッドで同じプロセスを切り替えます。

  これはマルチコアCPUであれば、別のスレッドの処理が異なるコアを使用することができ、真の平行が登場しました。並列マルチコア、シングルコアのみ同時並行偽物であると言うことができるです

  スレッドは、CPUスケジューリングと基本単位の分布は、必ず  (等CPU、メモリ、ディスクIOを含む)は、オペレーティングシステムが割り当てるリソースを処理の最小単位である 明確な差。言ってCPUだけで、私は私の目を閉じて、私はCPUを想定、そう理解するために、スレッドを見ることができますがあります私は、プロセスは、私が見たもの、彼の目を開けました後、オペレーティングシステムのスケジューラは、私には、プロセスが割り当てられますか?私はその後、私は今のスケジューリングおよび割り当てが何であるか、その過程で多くのスレッドを参照してください?プロセス?いいえ、ABCDコア1234に割り当てられたスレッド、その後、私は4コアだった場合、私が見ることができるそれらのスレッドをスケジュール、配布をスケジュールする方法、私は他のプロセスを見ていないので、他のスレッドがまだ待機として、割り当てを待つ必要がどのくらい、どのように割り当てるために、彼らはこの記事の範囲ではないでしょう。そして、CPUのスレッドのスケジューリングと基本単位の割り当て。

  最後に、ここでのメモリ管理モジュールを実行するオペレーティングシステムについての話:この前に、プログラマが各プログラムを実行するためにスペースをアレンジする必要があり、ここでのスペースはメモリの物理アドレスを意味するが、このような問題は、各プログラムであり、どのように同じメモリ空間の使用を交渉することは異なりますが、プログラマは基本的なメモリ割り当ての問題を気にする必要があります。ソリューションは、CPUがMMUモジュールの変換仮想アドレスと物理アドレス、オペレーティングシステム、およびMMU後の仮想アドレスを追加して、仮想アドレスが異なる物理的にマッピングされ、前方に同じ仮想アドレス空間を使用して、各プロセスの処理の概念を置くことです住所、異なるプロセスは、独立して、物理メモリ空間の取得することができます。

  また、いくつかのオペレーティングシステムでは、プロセスは、ユニットをスケジュールされていない、スレッドはスケジューリングの基本単位である、などのVxWorksなどのスケジューラのスケジュールスレッドだけではなく、スケジューリング方法。

  要約:

  図1は、1つのプロセスがCPUのみによって複雑にすることができ、マルチCPUコンピュータは、並列に処理することができます。

  図2に示すように、シングルコア、シングルCPUスレッドが並列スレッド内の単一のマルチコアCPU、同時にすることができます。

  3、同時または並列、ユーザの観点、マルチプロセスを参照して、マルチスレッドのいずれか。

基本的な違い:プロセスは、オペレーティング・システム・リソース割り当ての基本単位であり、スレッドはタスクのスケジューリングおよび実行の基本単位であります

オーバーヘッドの点で:各プロセスは、独自のコードとデータ空間(アプリケーション・コンテキスト)を有し、プログラムの切り替え大きなオーバーヘッドを有し、スレッドは軽量プロセスとして見ることができる、スレッドがコードおよびデータ空間の同じタイプを共有します各スレッドは、独自の独立した実行時スタックとプログラムカウンタ(PC)、オーバーヘッドスレッド間の小さなスイッチを有しています。

環境:同時に動作するシステムにおいて、複数のプロセス(プログラム)を実行し、同様の処理(プログラム)内の複数のスレッドが同時に存在するが(フィルムがたびに1つだけ実行スレッドを有し、CPUスケジューリングによって)行います

メモリ割り当て:システムは、異なるメモリ空間を実行している各プロセスに割り当てられると、スレッド、CPUに加えて、システムは、(そのリソースの使用リソース・スレッドのプロセスに属する)ではないであろうスレッドのためのメモリを割り当てます資源、スレッドグループを共有することができます。

包含関係:プロセス内の複数のスレッドが存在する場合にどのスレッドが手順を実行し、シングルスレッドのプロセスとして見ることができないラインではなく、完全に一緒にライン(スレッド)を複数、スレッドは、プロセスの一部であり、そう糸はまた、軽量プロセスまたはLWPとして知られています。

 

オリジナルの記事は、0公表 ウォン称賛27 ビュー80000 +を

おすすめ

転載: blog.csdn.net/yimenglin/article/details/103567326