获取系统调用中的Cpu和内存信息

时间:2012-05-26 13:46:44

标签: c linux-kernel

我正在尝试在系统调用中实现当前进程的CPU和内存使用信息。 我可以使用:

获取当前进程名称,pid和uid
current->comm //process name
current->pid //process id
current_uid() //uid

但似乎是全部。(我使用的是内核3.2.0-24-generic)

正如我从Memory usage of current process in C看到的那样,读取(vfs_read)和解析/proc/pid/status似乎是获取内存和CPU使用的唯一选择。

有更好的方法来获取这些信息,还是我走在正确的轨道上?

我还首先将我的代码作为内核模块进行测试,因为系统调用和内核模块都在内核空间中运行。这也是不好的做法吗?

1 个答案:

答案 0 :(得分:0)

current->mm是存储所有内存信息的地方 current->mm->mmap是进程的内存映射列表,因此您可以迭代它并查看在那里找到的内容。

current->utimecurrent->stime可能对获取CPU信息很有用。