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->utimecurrent->stimeCPU 情報の取得に役立つ場合があります。

于 2012-05-28T09:18:21.527 に答える