web-dev-qa-db-ja.com

実行中のプロセスの数が一番上に表示されます

top(1)に表示される「実行中」フィールドに表示される通常の最大数は、システムにインストールされている論理CPUの数です。ただし、Ubuntu 10.04(他のバージョンではチェックされていません)では、top(1)に、前述の制限よりも多くのプロセスが実行されていることがあります。

たとえば、シングルコアシステムで実行中の2つのプロセスが表示される原因は何ですか?

7
efutch

上部の「実行中」フィールドには、同時に実行されているタスクの数は表示されません。実行可能のタスクの数、つまりCPUアクセスを競合しているタスクの数が表示されます。 。

Topが単一のタイムスライスですべてのシステム情報を取得できる場合、「実行中」フィールドは、ステータス(S列)がR(ここでもRここでは「実行中」を意味するとよく言われますが、これは実際には上記のように「実行可能」を意味します)。実際には、topが各タスクの情報を1つずつ取得し、実行可能なタスクの一部が終了するまでにスリープ状態になったり、その逆の場合があるため、数が一致しない場合があります。 (topの一部の実装では、ステータスRのタスクをカウントして、「実行中」フィールドを計算する場合があります。その場合、数は正確になります。)

Topが情報を収集するとき、つまりtop自体には、常に実行可能なタスクがあることに注意してください。実行可能なタスクが1つある場合は、他のプロセスがCPU時間を争っていないことを意味します。

おそらくハイパースレッディング。

トップのマニュアルページには次のように書かれていることに注意してください。

実行中として表示されるタスクは、「実行準備完了」としてより適切に考える必要があります。それらのtask_structは、Linuxの実行キューに単純に表されます。真のSMPマシンがなくても、トップの遅延間隔とニース値によっては、この状態で多数のタスクが表示される場合があります。

3
Sandy