比較表
比較基準 | マルチプロセッシング | マルチスレッド |
---|---|---|
基本 | マルチプロセッシングは、計算能力を高めるためにCPUを追加します。 | マルチスレッドは、計算能力を高めるために単一プロセスの複数のスレッドを作成します。 |
実行 | 複数のプロセスが同時に実行されます。 | 単一プロセスの複数のスレッドが同時に実行されます。 |
作り方 | プロセスの作成は時間がかかり、リソースを消費します。 | スレッドの作成は、意味のある時間とリソースの両方で経済的です。 |
分類 | 多重処理は対称的でも非対称的でもよい。 | マルチスレッドは分類されません。 |
マルチプロセッシングの定義
マルチプロセッシングシステムは、3つ以上のプロセッサを持つシステムです。 システムの計算速度を上げるために、CPUがシステムに追加されます。 各CPUには、独自のレジスタセットとメインメモリがあります。 CPUが分かれているからといって、1つのCPUに処理すべきものがなくてもアイドル状態になり、もう1つのCPUにプロセスが過負荷になる可能性があります。 このような場合、プロセスとリソースはプロセッサ間で動的に共有されます。
マルチプロセッシングは、 対称型マルチプロセッシングと非対称型マルチ プロセッシングに分類できます。 対称型マルチプロセッシングでは、すべてのプロセッサがシステム内の任意のプロセスを自由に実行できます。 非対称型マルチプロセッシングでは、プロセッサ間にマスタースレーブ関係があります。 マスタープロセッサは、プロセスをスレーブプロセッサに割り当てます。
プロセッサにメモリコントローラが内蔵されている場合、プロセッサを追加するとシステム内のアドレス可能なメモリの量が増えます。 マルチプロセッシングは、メモリアクセスモデルをユニフォームメモリアクセスから非 ユニフォームメモリアクセスに変更する可能性があります 。 ユニフォームメモリアクセスは、任意のプロセッサから任意のRAMにアクセスするために同じ時間を要する。 一方、不均一なメモリアクセスは、他の部分よりもメモリのある部分にアクセスするのにより長い時間がかかります。
マルチスレッドの定義
マルチスレッド化とは、単一プロセスの複数のスレッドをそのプロセスのコンテキスト内で同時に実行することです。 それでは、最初にスレッドとは何かについて説明しましょう。 プロセスのスレッドとは、プロセスのコードセグメントを意味し、独自のスレッドID、プログラムカウンタ、レジスタ、およびスタックを持ち、独立して実行できます。 しかし、同じプロセスに属するスレッドは、コード、データ、システムリソースなど、そのプロセスの所有物を共有する必要があります。 サービス要求ごとに別々のプロセスを作成すると、時間がかかり、システムリソースが浪費されます。 このオーバーヘッドを招く代わりに、プロセスのスレッドを作成する方が効率的です。
スレッドを作成することは、それが属するプロセスのコードとデータを共有するので経済的です。 そのため、システムはスレッドごとにリソースを個別に割り当てる必要はありません。 マルチスレッドオペレーティングシステムでは、マルチスレッド処理を増やすことができます。 複数のCPUでマルチスレッド化すると並列処理が増えるため。
マルチプロセッシングとマルチスレッドの主な違い
- マルチプロセッシングとマルチスレッドの主な違いは、マルチプロセッシングではシステムに3つ以上のCPUを追加できるのに対し、マルチスレッドではプロセスが複数のスレッドを生成してシステムの計算速度を向上させることです。
- マルチプロセッシングシステムは複数のプロセスを同時に実行しますが 、マルチスレッドシステムはプロセスの複数のスレッドを同時に実行させます。
- プロセスを作成すると時間がかかり 、システムリソースが枯渇すること さえあります。 ただし、同じプロセスに属するスレッドはそのプロセスの所有物を共有するため、スレッドの作成は経済的です。
- マルチプロセッシングは対称型マルチプロセッシングと非対称型マルチ プロセッシングに分類できますが、マルチスレッドはそれ以上分類されません。
結論:
マルチプロセッシングシステムでマルチスレッドを使用すると並列処理が増えるため、マルチプロセッシング環境ではマルチスレッドの利点が徐々に増加します。