سؤال كيف يتم حساب النسبة المئوية لاستخدام CPU؟


في بلدي أوبونتو 12.04 ، مع psensor ، رأيت رقم النسبة المئوية المحدثة لاستخدام وحدة المعالجة المركزية. أتساءل كيف هذه النسبة caculated؟ على وجه التحديد ، ما هو البسط والمقام في النسبة؟

شكر!


6
2018-06-04 13:43


الأصل




الأجوبة:


ال استخدام المعالج في المئة يتم حسابه مع "مقدار الوقت الذي لا يكون فيه المعالج في وضع الخمول". أعني ، يتم إجراء هذا الحساب من عداد تسجيل استخدام عملية "الخمول" قيد التشغيل. في حين أن preocesses آخر "سرقة" قوة المعالج من عملية الخمول ، يتم تقليل سجل المستهلك معالج الخمول بعامل ؛ نظرًا لأن الخط الزمني ثابت وثابت ، فإن (1 - "٪ الوقت في taks غير نشط") هو مقدار حمل المعالج المستخدم لكافة العمليات التي تعمل على المعالج:

enter image description here

تعريف استخدام وحدة المعالجة المركزية

لأغراضنا ، أعرّف استخدام وحدة المعالجة المركزية ، U ، كمقدار الوقت   ليس في المهمة الخاملة ، كما هو موضح في المعادلة 1.

مهمة الخمول هي المهمة ذات الأولوية القصوى المطلقة في   نظام تعدد المهام. هذه المهمة تسمى أحيانًا الخلفية   مهمة أو حلقة خلفية ، كما هو موضح في قائمة 1. هذا المنطق تقليديا   يحتوي على نوع (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.
   }
}

هذا التصور هو في الواقع تبسيط ، مثل بعض العمل "الحقيقي"   غالبا ما يتم في مهمة الخلفية. ومع ذلك ، فإن المنطق مشفرة ل   يجب أن لا يكون التنفيذ أثناء المهمة الخاملة صعباً في الوقت الفعلي   المتطلبات لعدم وجود ضمان عند هذا المنطق   اكتمال. في الواقع ، تقنية واحدة يمكنك استخدامها في نظام زائد   هو نقل بعض المنطق بمتطلبات توقيت أقل صرامة   من المهام في الوقت الحقيقي الصعبة وفي المهمة الخاملة.


5
2018-06-04 13:52