web-dev-qa-db-ja.com

プロセスのCPU使用率は実際にはどういう意味ですか

コンピューターに単一のコアがあると仮定します。プロセスAが100%のCPU容量で実行されているのに対して(たとえば)10%のCPU容量で実行されているとはどういう意味ですか。

CPUが2.0GHzの場合、プロセスAのタイムスライスでは、プロセッサは1秒あたり20億ステップを実行していましたが(100%キャップの場合)、2億ステップしか実行していません(10%キャップの場合)。 )?

100%シナリオと10%シナリオの原因は何ですか?

4
Dave Stibrany

CPU使用率は、オペレーティングシステムの プロセス/タスクスケジューラ によって計算されます。実際、CPU使用率が10%の場合、それはタスクがタスクスケジューラの単位期間の10%の間アクティブに実行されていることを示します。他のプログラムは残りの90%のCPU時間で実行されるか、OSが単にアイドル状態になります。同様に、totalallプログラムのCPU使用率が10%の場合、これは、システム上のプログラムが90%の時間実行されていないことを示します。

マルチタスクオペレーティングシステム(WindowsやLinuxなど)の「ベアメタル」で実行されるプログラムはないため、CPU使用率は、CPUのサイクルがその特定のプログラムの実行に費やされる割合の尺度です。これが、プログラムに無限ループがある場合、「作業」が行われていなくても、CPU使用率が100%に近づく理由です(プログラムは、オペレーティングシステムから提供されたすべてのスケジューリング期間を使用して実行しようとしているため) いくつかのコード)。

プロセスは常に実行されていますが、プロセスは特定のイベント/割り込みの発生を待機できるか、またはに指示しているため、ほとんどの場合、CPUを100%使用しません。オペレーティングシステムは、その操作を短時間中断/スリープします。

7
Breakthrough