CPU 사용량 비율은 어떻게 계산되나요?

CPU 사용량 비율은 어떻게 계산되나요?

psensor를 사용하는 Ubuntu 12.04에서 CPU 사용량에 대한 백분율 숫자가 업데이트되는 것을 확인했습니다. 이 비율이 어떻게 계산되는지 궁금합니다. 구체적으로 비율의 분자와 분모는 무엇인가요?

감사해요!

답변1

그만큼프로세서 사용량 비율"프로세서가 유휴 상태가 아닌 시간"으로 계산됩니다. 즉, 이 계산은 "유휴" 실행 프로세스의 사용량을 등록하는 카운터에서 만들어집니다. 다른 프로세스는 유휴 프로세스에서 프로세서 성능을 "강탈"하지만 유휴 프로세서 소비자 레지스터는 몇 배로 감소합니다. 타임라인은 고정되고 일정하므로 (1-"유휴 작업의 %시간")은 프로세서에서 실행되는 모든 프로세스에 사용되는 프로세서 로드의 양입니다.

여기에 이미지 설명을 입력하세요

CPU 활용도 정의

우리의 목적을 위해 방정식 1에 표시된 것처럼 CPU 사용률 U를 유휴 작업이 아닌 시간으로 정의합니다.

유휴 작업은 멀티태스킹 시스템에서 우선순위가 가장 낮은 작업입니다. 이 작업은 목록 1에 표시된 것처럼 백그라운드 작업 또는 백그라운드 루프라고도 합니다. 이 논리에는 전통적으로 while(1) 유형의 루프가 있습니다. 즉, 무한 루프는 중요한 작업이 완료되어야 한다는 표시를 기다리면서 CPU를 회전시킵니다.

목록 1: 백그라운드 루프의 간단한 예

int main( void )
{
   SetupInterrupts();
   InitializeModules();
   EnableInterrupts();

   while(1)      /* endless loop - spin in the background */
   {
      CheckCRC();
      MonitorStack();
      ... do other non-time critical logic here.
   }
}

일부 "실제" 작업은 백그라운드 작업에서 수행되는 경우가 많기 때문에 이 설명은 실제로 지나치게 단순화된 것입니다. 그러나 유휴 작업 중에 실행되도록 코딩된 논리에는 이 논리가 언제 완료될지 보장할 수 없으므로 엄격한 실시간 요구 사항이 없어야 합니다. 실제로 오버로드된 시스템에서 사용할 수 있는 한 가지 기술은 타이밍 요구 사항이 덜 엄격한 일부 로직을 하드 실시간 작업에서 유휴 작업으로 이동하는 것입니다.

관련 정보