首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有人知道top或ps命令的原理吗?解决办法

2012-04-13 
有人知道top或ps命令的原理吗?Linux下想测每个进程的cpu利用率,类似于top和ps这类的工具。网上说的测cpu的

有人知道top或ps命令的原理吗?
Linux下想测每个进程的cpu利用率,类似于top和ps这类的工具。网上说的测cpu的方法貌似都不能定位到每个进程。
我想知道有没有那位高人研究过这个,指点一下。

top的源代码我下载下来了,但是感觉这个一时半会儿看不懂啊...

[解决办法]
起始时间也在 /proc/$PID/stat 里, stat 里面信息好像不少的说:

/* PID */
/* ($cmd) */

/* state, ppid */
/* pgid, sid, tty, tpgid */
/* flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
/* utime, stime */
/* cutime, cstime, priority */
/* nice */
/* timeout, it_real_value */
/* start_time */
/* vsize */
/* rss */

#if SMP
/*rss_rlim, start_code, end_code, start_stack, kstk_esp, kstk_eip */
/*signal, blocked, sigignore, sigcatch */
/*wchan, nswap, cnswap, exit_signal */
/*cpu last seen on*/
#endif 

[解决办法]
proc是系统内核数据对外提供的窗口,进程信息就可以从这里读到。
如果系统没有mount proc,就只能直接到内核中去读task_struct了。

[解决办法]
mLee79 说的是比较常用的方法,推荐!

还有邪路子。可以自己写个kernel module,insert到内核里面去,就想怎么都可以了~~这个不推荐

热点排行