답변:
초당 총 한 번만 폴링합니다. 마지막으로 사용한 시간을보고 있습니다.
CPU가 잠시 동안 50 %에 머무르면 듀얼 CPU 시스템에서 하나의 CPU를 100 % 사용하고있을 가능성이 높습니다.
OS는 특정 기간 동안 프로세스를 예약합니다. 따라서 프로세스가 10ms 중 1ms로 예약되면 10 % CPU를 사용하게됩니다.
(단일 스레드, 단일 CPU 시스템에서) 프로세스가 실행 중이거나 실행 중이 아니기 때문에 약간 직관적입니다. 즉, 100 % 또는 0 %를 사용하고 있습니다. 표시되는 백분율은 시간 창에서 측정되며 프로세스에 실행할 시간 슬롯을 할당하는 OS의 측정치입니다.
I / O에 액세스하는 경우 프로세스가 이에 기여하지 않습니다. 따라서 큰 계산을 수행하는 경우 100 %를 등록합니다 (다른 것이 아무것도 없다고 가정). 그런 다음 네트워크 패킷 / 디스크 액세스 등을 기다리면 프로세스가 여전히 실행 중이지만 CPU 수치가 떨어집니다.
평균 시간을 기준으로합니다. 모든 스레드가 동일한 우선 순위에 따라 동일한 CPU 시간을 가질 수 있지만 스레드는 "감사하지만 유휴 상태입니다"라고 말하고 다음 스레드로 넘어갑니다. 그렇기 때문에 프로그램이 항상 같은 시간을 사용하는 것은 아니며 대부분의 프로그램은 CPU를 0 % 소비하고 있으며 실제로 CPU가 필요한 프로그램은 자체적으로 거의 100 %의 시간이 걸릴 수 있습니다.
왜 상한선이 50 %입니까? 아마도 두 개의 CPU 코어가 있고 하나만 사용합니다.
또는 제안 된대로 하이퍼 스레딩을 사용하고 있지만 이것이 어떻게 작동하는지 모르겠습니다.