[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Como lo hace PS para obtener el % de uso de CPU por proceso?



Muchas gracias a todos por animarme a mirar el código, encontrarlo no
me ha llevado más de un minuto!! y yo complicandome la vida con
ingenieria inversa pensando que buscarlo en el código seria una
locura. Aquí lo pego por si sirve a alguien en un futuro.

static int want_this_proc_pcpu(proc_t *buf){
  unsigned long long used_jiffies;
  unsigned long pcpu = 0;
  unsigned long long avail_jiffies;

  if(!want_this_proc(buf)) return 0;

  used_jiffies = buf->utime + buf->stime;
  if(include_dead_children) used_jiffies += (buf->cutime + buf->cstime);

  avail_jiffies = seconds_since_boot * Hertz - buf->start_time;
  if(avail_jiffies) pcpu = (used_jiffies << 24) / avail_jiffies;

  buf->pcpu = pcpu;  // fits in an int, summing children on 128 CPUs

  return 1;
}


Reply to: