解決策 1:
CPU 時間は個別に割り当てられます タイム スライス (ティック)。特定の数のタイム スライスでは、CPU はビジーであり、それ以外の時間はそうではありません (アイドル プロセスで表されます)。下の図では、CPU は 10 個の CPU スライスのうち 6 個でビジーです。 6/10 =.60 =ビジー時間の 60% (したがって、アイドル時間は 40% になります)。
パーセンテージ は、「あるものを 100 の部分に分割した特定の数として表される数または比率」と定義されます。したがって、この場合、これらの部分は時間の個別のスライスであり、何かはビジー タイム スライスとアイドル タイム スライス (ビジー タイム スライスとアイドル タイム スライスの比率) です。
CPU は GHz (1 秒あたり数十億サイクル) で動作するためです。オペレーティング システムは、ティックと呼ばれる小さな単位でその時間をスライスします。それらは実際には 1/10 秒ではありません。 Windows のティック レートは 1 秒間に 1000 万ティックで、Linux では sysconf(_SC_CLK_TCK)
です。 (通常は毎秒 100 ティック)。
top
のようなもので 、使用中の CPU サイクルは、ユーザー時間やシステム時間などのパーセンテージにさらに分割されます。 top
で Linux と Windows の perfmon では、合計が 100% * the_number_of_cpu_cores であるため、100% を超える表示が得られることがよくあります。
オペレーティング システムでは、スケジューラです。 これらの貴重なスライスをプロセスに割り当てるためのジョブであるため、スケジューラがこれを報告します。
解決策 2:
CPU 時間は、プロセスが CPU を使用している時間です。パーセンテージへの変換は、経過した実時間で割ることによって行われます。
したがって、2 秒間で 1 秒間の CPU 時間を使用するプロセスがある場合、CPU の 50% を使用していることになります。
MATLAB プロセスの場合、217% は、最後のサンプル間隔で 1 秒あたり 2.17 秒の CPU 時間を使用したことを示します。つまり、2 つの CPU コアを独占し、3 分の 1 を占有しています。