チュートリアル

プロセッサのスレッドは何ですか? 核との違い

目次:

Anonim

この記事では、これらのプロセッサコアプロセッサコアの基本的な違いを特定するために、 プロセッサの スレッド、または英語ではスレッドと呼ばれる プログラミングスレッドについて説明します 。 専門家ではなく、上級ユーザーの間でも、このトピックについてはまだかなりの混乱があります。 そのため、可能な限りこれらの用語を明確にすることにしました。

スレッドを処理するこの概念は、通常のユーザー向けにプロセッサを購入するときに知っておく必要はありません。 ほとんどの場合、を下回るよりも上回りますが 、ほとんどの場合それは当てはまります。 スレッドとは何かを知る必要があるのは、 プログラム開発作業です。 アプリケーションのプログラミング方法とコンパイル方法に応じて、コアよりもスレッド数の多いプロセッサーでの実行が最適化されます 。 そして、これは私たちが説明を得ようとするところです。

コンテンツインデックス

プロセッサのコアは何ですか

私たちのプロセッサのコアが何であるかを説明することから始めるので、混乱しないようにこの事前知識を持っています。

プロセッサは、コンピュータのRAMメモリ読み込まれたプログラムの命令を実行するための責任があります。 私たちのPCで典型的なタスクを実行し、ナビゲートし、書き込み、写真を表示するなどに必要な実際的にすべての指示がそれを通過します。 物理セクションでは、プロセッサは何百万ものトランジスタで構成され集積回路であり 、データビットをエネルギーの形で通過させるか通過させない論理ゲートを形成します。

さて、この小さなチップには、 nuclei呼ぶことができるさまざまなモジュールに加えて、今は興味がない他の要素が含まれています。 数年前のプロセッサにはこれらのコアが1つしかなく、 サイクルごとに1つの命令を処理できました。 これらのサイクルはメガヘルツ(MHz)で測定されます。MHzが多いほど、毎秒実行できる命令が多くなります。

現在、コアは1つだけではなく、いくつかあります。 各コアはサブプロセッサを表します 。つまり、これらの各サブプロセッサはこれらの命令の1つを実行し、マルチコアCPUで各クロックサイクルでそれらのいくつかを実行できます。 4コアのプロセッサを使用している場合は、 1つではなく4つの命令を同時に実行できます。 したがって、パフォーマンスの向上は4倍になります。 6つある場合、同時に6つの命令があります。 これは、現在のプロセッサが古いプロセッサよりもはるかに強力な方法です。

また、 これらのコアはプロセッサに物理的に存在し、仮想的なものやコードによって作成されたものではありません。

スレッドの処理とは何ですか?

スレッド、スレッド、またはスレッドは 、少なくともコアやそのようなものに関しては、プロセッサの物理的な部分ではありません。

処理スレッドをプログラムのデータ制御フローとして定義できます。 これは、 プロセッサとそのさまざまなコアのタスクをより効率的な方法で管理できるようにする手段です。 スレッドのおかげで、プログラムのタスクまたはプロセスである最小割り当て単位をチャンクに分割して、プロセスキュー内の各命令の待機時間を最適化できます。 これらのチャンクはスレッドまたはスレッドと呼ばれます。

つまり、 各処理スレッドには、実行するタスクの一部が含まれています 。これは、物理的な核にタスク全体を導入する場合よりも実行が簡単なものです。 このようにして、CPUは複数のタスクを同時にかつ同時に処理でき 、実際には、スレッドと同じ数のタスクを実行できます。通常、コアごとに1つまたは2つあります。 たとえば6つのコアと12のスレッドを持つプロセッサでは、プロセスを6つだけではなく12の異なるタスクに分割できます。

このように機能することで、システムリソースをより公平かつ効率的に管理できます 。 あなたが知っている…彼は分裂し、あなたはすべての人生で勝つでしょう 。 これらのプロセッサはマルチスレッドと呼ばます。 現時点では、12スレッドのプロセッサには12コアがなく、コアは物理的な起源であり、スレッドは論理的な起源です。

それは確かにいくぶん抽象的なものであり、理解するのが難しいので、コンピュータ上のプログラムのアーキテクチャについて話す場合、それがどのように変換されるかを見てみましょう。

プログラム、プロセス、スレッド

私たちは皆、 プログラムが何であるかを知っています。それは私たちのコンピュータに保存され、特定のタスクを実行するための運命にあるコードです。 アプリケーションはプログラムであり、ドライバーもプログラムであり、オペレーティングシステムでさえ、その内部で他のプログラムを実行できるプログラムです。 プロセッサは1と0のみを理解するため、それらはすべてバイナリ形式保存されます。

プログラムのプロセス

プログラムを実行するには、プログラムをメモリRAMにロードします 。 このプログラムは、関連するバイナリコードと、オペレーティングシステムによって「インテリジェントに」割り当てられる操作に必要なリソースを運ぶプロセスによって読み込まれます

プロセスに必要な基本的なリソースは、プログラムカウンターとレコードのスタックです。

  • プログラムカウンタ(CP) :命令ポインタと呼ばれ、処理中の命令シーケンスを追跡します。 レジスター :プロセッサーに配置された倉庫で、命令、ストレージアドレス、またはその他のデータを格納できます。 スタック :これは、プログラムがコンピュータでアクティブになっているインスタンスに関連する情報を格納するデータ構造です。

その後、 各プログラムはプロセス分割され 、メモリ内の特定の場所に格納されます。 また、 各プロセスは独立して実行されます。これは、プロセッサとシステムが同時に複数のタスクを実行できる方法、つまりマルチタスクシステムと呼ばれる方法であるため、理解することが非常に重要です。 この処理システムは、プログラムがブロックされている場合でも、PCでの作業を続行できる原因です。

プロセスのスレッド

これは、オペレーティングシステムではスレッドと呼ばれる処理スレッドが表示される場所です。 スレッドはプロセスの実行の単位です。 プロセスをスレッドに分割でき、それぞれが実行のスレッドになります。

プログラムがマルチスレッド化されていない場合、その中のプロセスには1つのスレッドしかないため、一度にしか処理できません 。 逆に、マルチスレッドプロセスがある場合、 これらは複数の部分分割できそれらの各スレッドはプロセスに割り当てられたリソースを共有します。 したがって、マルチスレッドの方が効率的であると述べました。

さらに、 各スレッドには独自のレコードスタックがあるため、一度にすべて実行する必要のある単一のプロセスとは異なり、2つ以上のレコードを同時に処理できます。 スレッドは、プロセスを分割して実行できる単純なタスクです。 そして、これは基本的に処理スレッドの最後の機能です。 スレッドが多いほど、プロセスの分割が多くなり、同時計算の量が増えるため、効率が向上します。

まだ完了していません。 二重スレッドのコア何が起こるという保留中の質問があります 。 各カーネルは一度に1つの命令を実行できるとすでに述べました。 CPUには、実行時間を可能な限り最も効率的な方法で分割する複雑なアルゴリズムがあり、各タスクに特定の実行間隔を割り当てます。 タスク間の変更が非常に速いため、ニュークリアスがタスクを並行して実行しているような感覚が得られます。

これらのスレッドまたはシステム内のスレッドを確認できますか?

あまり詳細ではありませんが、はい、WindowsとMacの両方で確認できます

Windowsの場合、 タスクマネージャーを開いて「 パフォーマンス 」に移動するだけです。 次に、下の「 リソースモニター 」リンクをクリックします。 この新しいウィンドウでは、各プロセスをCPU消費とスレッドに分割します。これらはスレッドです。

Macアクティビティモニターでは、メイン画面に一覧表示されているスレッドが直接表示されます。

これで、CPU処理スレッドとは何かに関する記事は終わりです。 特にプロセッサがどのように機能するかを完全に理解していないユーザーにとっては、説明するのはやや複雑で非常に抽象的なトピックです。 しかし、この場合は良いニュースがあります。プロセッサがどのように機能し、命令サイクル全体がどのように実行されるかについてのかなり良い記事もあるからです。

次の記事をご覧ください。

すべてが多かれ少なかれ明確になっていることを願っております。このトピックについてもっと知るために私たちを選んでいただいたことに感謝します。

チュートリアル

エディタの選択

Back to top button