TOP에서 CPU 사용량이 100%에 도달한 것을 표시하지 않는 이유는 무엇입니까?

TOP에서 CPU 사용량이 100%에 도달한 것을 표시하지 않는 이유는 무엇입니까?

듀얼 코어 프로세서가 있습니다. 아래 프로그램의 두 인스턴스를 실행 중입니다.

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

TOP를 실행했는데 CPU 사용량이 97%에 도달했지만 결코 100%에 도달하지 못했습니다. 이유는 무엇입니까? CPU는 항상 I/O 작업 없이 이 두 프로그램을 실행 중이어야 합니다.

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 이후에는 int i값이 다시 0이 됩니다.

관련 정보