Chinaunix

标题: 请教内核中的内存分配? [打印本页]

作者: lostiger    时间: 2011-10-16 17:23
标题: 请教内核中的内存分配?
我希望实现一个功能,就是在内核态遍历每个进程的信息,比方说对最近60秒内占用CPU最多的进程进行一个排序,然后每秒刷新一次。
初步打算用 for_each_task这个宏,但是现在在内存分配上遇到一点困惑。

我几乎没有内核编程的经验

我现在参考“top”的源代码,(top是一个应用层程序,可以显示每个进程的一些信息),top源代码在分配内存那部分有如下动作:
1. 在遍历进程时,给每个进程相关的数据结构,分配内存,用malloc
2. 休息一段时间
3. 再次遍历进程,如果进程数比以前多,继续malloc,如果进程数比以前少,将闲置的放到一个自定义的free列表,如果下次需要内存,先从free列表里面取得。


我想问的是,这套机制我能不能照搬到内核,只不过我把malloc换成vmalloc。

另外,
1. 内核中有无类似qsort那样的排序函数?
2. 在内核态遍历每个进程的信息,比方说对最近60秒内占用CPU最多的进程进行一个排序,然后每秒刷新一次。(这个大家有什么好的思路嘛)
作者: embeddedlwp    时间: 2011-10-17 08:33
为啥不用/proc




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2