シングルスレッドCPUのマルチスレッドアプリケーション?

シングルスレッドCPUのマルチスレッドアプリケーション?

この質問の動機は探求から来ています。インテルガリレオ第2世代マザーボードシングルスレッドプロセッサがあります。

  • スレッドの存在に依存するすべてのユーザー空間アプリケーションについて、これが何を意味するのかについての概念的な説明を探しています。
  • これは、CPUスレッドのサポートに頼るのではなく、ソフトウェアのスレッドが呼び出すシステムコールをエミュレートするためにカーネルをパッチする必要があることを意味しますか?

ベストアンサー1

マルチタスクシステムは、システムにインストールされているプロセッサまたはコアの数と処理する「スレッド」の数に関係なく、複数のプロセスとスレッドを処理します。マルチタスクは時間分割を使用して機能します。つまり、カーネルと実行中の各プロセスまたはスレッドの実行に少し時間がかかった後、システムは次の実行可能スレッドに切り替わります。遷移は非常に頻繁に起こるので、真ではありませんが、すべてが並列に実行されるようです。

これはすべてAPIなどを変更することなく発生します。マルチコアシステムは、物理的にサポートできるよりも多くのスレッドを実行できる必要があります。シングルコアケースは1つの例にすぎません。

CPUをシングルスレッドとして記述することは、次のことを意味します。同時マルチスレッド複数のスレッド(またはプロセスまたはタスク)を実行するCPUの機能ではなく、SMT(Intel Worldのハイパースレッディング)です。 CPUにSMT機能を追加しても、スレッドの実行に役立つ指示が追加されるわけではなく、単に特定の状況でハードウェアをよりよく使用できるようにするだけです。

おすすめ記事