デュアルコアプロセッサがあります。以下のプログラムの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 になります。