- 论坛徽章:
- 0
|
本帖最后由 sakiola 于 2010-03-10 15:53 编辑
- 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;
- }
复制代码 这是procps中的Display.c中的一个函数 应该是用来计算单个进程的CPU使用率的
请问 (used_jiffies << 24) / avail_jiffies
1.为什么要将used_jiffies左移24位之后去除 avail_jiffies?
2.同时对于其计算的原理也不是很清楚
以上达人指教
////////////////////////////////////////////////////////////////////////////////
基本上弄清楚了 发来干扰视听了 sosososo sorry
//////////////////////////////////////////////////////////////////////////////// |
|