同時実行とシングル コアとは?
オペレーティング システムにおいて、同時実行は、2 つ以上のプログラムを重複した時間フェーズで実行できるシステムの能力と定義されています。
ご覧のように、任意の時点で、実行中のプロセスは 1 つだけです。 したがって、同時実行は実際の並列実行の一般化された近似に過ぎない。 このような状況は、シングルコアプロセッサを持つシステムで見られるものです。
この同時実行チュートリアルでは、
- 同時実行またはシングル コアとは何か、について学習します。
- 並列実行または (マルチコア) とは何ですか?
- スレッドとは何ですか。
- マルチスレッドとは?
- マルチスレッドの仕組みは?
- CPUコアとは何ですか。
- シングルコアの主な問題点は何ですか?
- マルチコアが提供する解決策とは?
- マルチコアプロセッサのメリット
- Core と Threads の違い
- Hyper-Threading とは何ですか?
並列実行または(マルチコア)とは何ですか?
並列実行では、プロセスで実行するタスクをサブパーツに分解し、複数の CPU(または複数のコア)がそれぞれのサブタスクを正確に同時に処理します。
このように、任意の時点ですべてのプロセスが実行中であることがおわかりいただけるかと思います。 実際には、並行して実行されているのはプロセスのサブタスクですが、理解を深めるために、プロセスとして可視化することができます。
したがって、複数のタスクを同時に処理できるのが並列処理の現実的な方法です。 このような状況は、マルチコア・プロセッサを搭載したシステムで見ることができます。
KEY DIFFERENCE
- コアは一度に達成できる作業量を増やすのに対し、スレッドはスループット、計算速度を向上させます。
- コアはコンテンツスイッチを使用するのに対し、スレッドは多数のプロセスを実行するために複数のCPUを使用します。
- コアは信号処理ユニットのみを必要としますが、スレッドは複数の処理ユニットを必要とします。 マルチスレッドは、CPUが1つのプロセスの多くのタスクを同時に実行することを可能にする技術である。 これらのスレッドは、リソースを共有しながら個別に実行することができる。
マルチスレッドとは何ですか。
マルチスレッドとは、オペレーティング システム内で複数の実行スレッドを実行する共通のタスクのことです。 複数のシステム・プロセスを含むことができます。
マルチスレッドの仕組み
たとえば、最近のほとんどの CPU はマルチスレッドに対応しています。 スマートフォンの簡単なアプリで、同じことをライブでデモすることができます。
インターネットからデータを取得する必要があるアプリを開くと、アプリのコンテンツ領域がスピナーに置き換わります。 これは、データが取得され表示されるまで回転します。
バックグラウンドでは、2つのスレッドがあります。
これらの両方のスレッドは、同時実行のように見えるように 1 つづつ実行します。
CPUコアとは
CPUコアとは、何かの存在や性格の中心にある部分です。 コンピュータシステムにおいても同様に、CPUはコアと呼ばれる。
コア・プロセッサには、基本的に2つのタイプがある。
- Single-Core Processor
- Multi-Core Processor
Single Coreの主な問題点は?
Single Coreには主に2つの問題点があります。
- タスクをより速く実行するためには、クロック時間を増やす必要があります。
- クロックタイムを上げると消費電力と放熱が極端に増え、プロセッサが非効率になる。
マルチコアが提供するソリューション:
- 同じダイ上に2つ以上のコアを作成して処理能力を高めると同時に、クロック速度を効率のよいレベルに維持します。
- 効率よく動作する2つのコアを持つプロセッサは、シングルコアのプロセッサと同様の速度で命令を処理できます。 そのクロック速度は2倍であるが、マルチコア・プロセスの消費電力はより少ない。
マルチコアプロセッサの利点
マルチコアプロセッサの利点をいくつか紹介します。
- 選択できるトランジスタの数が多い
- 接続が短い
- 容量が小さい
- 小さい回路で高速に動作できる
Core と Core の違い
Core と Core の違いは? Threads
Parameters | Core | Threads |
定義 | CPUコアは実際のハードウェアコンポーネントを意味します。 | スレッドは、タスクを管理する仮想コンポーネントを意味します。 |
プロセス | CPUにはスレッドからタスクが供給される。 そのため、第1スレッドから送られてくる情報が信頼できない場合にのみ第2スレッドにアクセスする。 | CPUが複数のスレッドと相互作用する方法には、さまざまなバリエーションがある。 |
実装 | インターリーブ動作により実現 | 複数のCPUを使用することにより実現 |
メリット | 一度に達成できる仕事量を増やすことができる。 | スループットを向上させる、計算速度を上げる。 |
Make use of | Core uses content switching | Using multiple CPUs for operating numerous processes. |
必要なプロセス・ユニット | 信号プロセス・ユニットのみが必要です。 | 複数の処理ユニットを必要とする。 |
例 | 複数のアプリケーションを同時に実行する。 | クラスタ上でWebクローラを実行する。 |
Hyper-Threading とは?
Hyper-Threading は、エンドユーザーの PC に並列計算をもたらす Intel の最初の取り組みでした。 2002 年に Pentium 4 で初めてデスクトップ CPU に採用されました。
当時の Pentium 4 は、単一の CPU コアのみを搭載していました。 そのため、単一のタスクしか実行できず、どのような種類の多重演算も実行できない。
ハイパースレッディングを備えたシングルCPUは、オペレーティングシステムにとって2つの論理CPUとして表示されます。 この場合、CPUは単一ですが、OSは各コアに対して2つのCPUを考慮し、CPUハードウェアは各CPUコアに対して1組の実行リソースを持つことになります。
そのため、CPUは実際よりも複数のコアを持つように仮定し、オペレーティングシステムは単一のCPUコアごとに2つのCPUを仮定しています。
Summary:
- A thread is a unit of execution on concurrent programming.
- Multithreading refers the common task which runs multiple threads of execution within an operating system
- Today many modern CPUs support multithreading
- Hyper-threading was Intel first efforts to bring parallel computation to end user’s PCs.Threading は、並列処理をエンドユーザーのコンピューターにもたらす Intel の最初の取り組みでした。
- CPU コアは、その存在または特徴の中心となる部分です。
- OS では、並行処理は、重複する時間フェーズで 2 つ以上のプログラムを実行するシステムの機能として定義されます。
- 並列実行では、プロセスによって実行されるタスクがサブパーツに分解されます。
- シングルコア・プロセッサの主な問題は、タスクをより速く実行するために、クロック時間を増やす必要があることです。
- マルチコアは、同じダイ上にコアを二つ以上作成して処理能力を高め、クロック速度を効率的に保つことによってこの問題を解決しています。
- マルチコアの最大の利点は、選択ごとに多くのトランジスタを作成できることです
- CPUコアは実際のハードウェアコンポーネントを意味し、スレッドはタスクを管理する仮想コンポーネントを指します
。