TOPがCPU使用率が100%に達したことを示していないのはなぜですか?

TOPがCPU使用率が100%に達したことを示していないのはなぜですか?

デュアルコアプロセッサがあります。以下のプログラムの2つのインスタンスを実行しています。

void void main(){
    int i;
    while(1){
        i=i+1;
    }
}

TOPを実行しましたが、CPU使用率は97%に達しましたが、決して100%に達しませんでした。なぜですか? CPUは常にI / O操作なしでこれら2つのプログラムを実行している必要があります。

intオーバーフローがメモリにどのような影響を与えますか?

TOPには実際にすべてのCPU使用率が表示されますか、またはSO専用に予約されているCPU比率はありますか(ここには表示されません)?そこに表示されていないSOプロセスはありますか?

答え1

 why doesn't it? 

スケジューリングという概念があり、さらにコア数に依存します。私のシステムでは、このプログラムは(マルチコアオペレーティングプログラムを書かない限り)13%以上のCPU使用率を生成しません。一部のベンチマークツールを使用して、最大100%のCPU使用率を報告する親レポートを表示できます。

How would the int overflow affect the memory?

-2 31以降は inti値が再び 0 になります。

関連情報