Como a porcentagem de uso da CPU é calculada?

6

No meu Ubuntu 12.04, com psensor, vi um número percentual atualizado para uso da CPU. Eu me pergunto como essa porcentagem é calculada? Especificamente, qual é o numerador e o denominador na proporção?

Obrigado!

    
por Tim 04.06.2012 / 15:43

1 resposta

5

O percentual de uso do processador é calculado com "o quantidade de tempo que o processador não está em inatividade ". Quero dizer, este calc é feito de um contador que registra o uso do processo de execução "inativo". Enquanto outro processo "rouba" a energia do processador do processo ocioso, o registro de consumidor do processador ocioso é diminuído por um fator; como a linha do tempo é fixa e constante, a (1 - "% de tempo nas idle taks") é a quantidade de carga do processador usada para todos os processos em execução em um processador:

DefinindoautilizaçãodaCPU

Forourpurposes,IdefineCPUutilization,U,astheamountoftimenotintheidletask,asshowninEquation1.

Theidletaskisthetaskwiththeabsolutelowestpriorityinamultitaskingsystem.Thistaskisalsosometimescalledthebackgroundtaskorbackgroundloop,showninListing1.Thislogictraditionallyhasawhile(1)typeofloop.Inotherwords,aninfiniteloopspinstheCPUwaitingforanindicationthatcriticalworkneedstobedone.

Listagem1:Exemplosimplesdeumloopdeplanodefundo

intmain(void){SetupInterrupts();InitializeModules();EnableInterrupts();while(1)/*endlessloop-spininthebackground*/{CheckCRC();MonitorStack();...doothernon-timecriticallogichere.}}

Thisdepictionisactuallyanoversimplification,assome"real" work is often done in the background task. However, the logic coded for execution during the idle task must have no hard real-time requirements because there's no guarantee when this logic will complete. In fact, one technique you can use in an overloaded system is to move some of the logic with less strict timing requirements out of the hard real-time tasks and into the idle task.

    
por 04.06.2012 / 15:52

Tags