1

我正在尝试在系统调用中获取当前进程的 CPU 和内存使用信息。我可以使用以下方法获取当前进程名称、pid 和 uid:

current->comm //process name
current->pid //process id
current_uid() //uid

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

正如我从C 中当前进程的内存使用情况中看到的那样,读取(vfs_read)和解析/proc/pid/status似乎是获取内存和 cpu 使用情况的唯一选择。

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

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

4

1 回答 1

0

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

current->utime并且current->stime可能有助于获取 CPU 信息。

于 2012-05-28T09:18:21.527 回答