2016-07-23 12 views
0

マシンに4コアがあり、4スレッドを生成するプロセスがあるとします。これは現在のプロセスがスケジュールされている間に、それらのコアの4つすべてがプロセスの4スレッド用に予約されていますか?プロセスが占有するコアの数はいくつですか?

+0

Linuxは実際にはプロセスではなく、[スケジュールスレッド](http://stackoverflow.com/questions/15601155/does-linux-schedule-a-process-or-a-thread)です。プロセスのスケジューリングについては、通常、古典的で単純化されたシングルスレッドプロセスを参照しています。 –

答えて

1

これは非常に複雑な質問です。しかし、私は助けることができます。原則として、1つのプロセスは1つのコアのみを使用します。実際には、1つのスレッドは1つのコアでしか実行できません。あなたがデュアルコアプロセッサを持っているなら、文字通り同じCPUに2つのCPUが張り付いています。これらは物理プロセッサと呼ばれます。これらの物理プロセッサは1スレッドを実行します。ただし、いくつかのCPUは2つの物理コアを持ちますが、同時に4つのスレッドを実行することができます。これらの余分な2つのスレッドは、論理コア上で実行されます。それらは物理的には存在しませんが、論理的にはCPUに存在します。

スレッドによって処理されている場合は、はいはい1コア1プロセスです。また、4つの計算コア(1つのコアCPUに1つの計算コアしかないため、名前には物理コアと論理コアが含まれます)を使用して、CPU上で4つのスレッドを実行できます。

タスクマネージャのプロセスタブでプロセスまたはプログラムを意味する場合は、プログラムの書き方によって異なります。

あなたの質問で判断すると、プロセスが4つのスレッドを生成する場合、プロセスはプール内のどの場所にあるかによって異なります。実行待ちのスレッドは何千もあります。各プログラムまたは実行可能ファイルからのスレッドを同時に実行する必要はありません。

1

プロセスの4つのスレッドは個別にスケジュールされています。プロセス自体はスケジュールされていません。

すべての4つのスレッドが同時に実行可能で、システム内に優先度の高い実行可能スレッドがない場合、4つのスレッドすべてが4つのコアで同時にスケジュールされます。

関連する問題