Как рассчитывается процент загрузки ЦП?

Как рассчитывается процент загрузки ЦП?

В моем Ubuntu 12.04 с psensor я увидел обновленное процентное число для использования процессора. Интересно, как этот процент подсчитывается? В частности, что такое числитель и знаменатель в соотношении?

Спасибо!

решение1

Theпроцент использования процессоравычисляется с помощью "количества времени, в течение которого процессор не находится в состоянии простоя". Я имею в виду, что этот расчет производится на основе счетчика, который регистрирует использование "простаивающего" работающего процесса. В то время как другие предварительные процессы "крадут" мощность процессора у простаивающего процесса, регистр потребителя простаивающего процессора уменьшается на коэффициент; поскольку временная шкала фиксирована и постоянна, (1-"%время в задачах простоя") представляет собой объем загрузки процессора, используемый для всех процессов, работающих на процессоре:

введите описание изображения здесь

Определение загрузки ЦП

Для наших целей я определяю загрузку ЦП, U, как количество времени, не занятое задачей бездействия, как показано в уравнении 1.

Задача бездействия — это задача с абсолютным самым низким приоритетом в многозадачной системе. Эту задачу также иногда называют фоновой задачей или фоновым циклом, показанным в Листинге 1. Эта логика традиционно имеет тип цикла while(1). Другими словами, бесконечный цикл вращает ЦП в ожидании указания на необходимость выполнения критической работы.

Листинг 1: Простой пример фонового цикла

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

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

Это описание на самом деле является чрезмерным упрощением, поскольку некоторая «реальная» работа часто выполняется в фоновой задаче. Однако логика, закодированная для выполнения во время задачи бездействия, не должна иметь жестких требований реального времени, поскольку нет гарантии, когда эта логика завершится. Фактически, один из приемов, который вы можете использовать в перегруженной системе, — это переместить часть логики с менее строгими требованиями к времени из задач жесткого реального времени в задачу бездействия.

Связанный контент