の内容を読んで/proc/[your PID]/stat
プロセス全体の情報を取得できます。2.6 カーネルを使用している場合は/proc/[your PID]/task/[thread ID]/stat
、個々のスレッドの情報も含まれています。(こちらをご覧ください)
具体的には、次の 2 つのフィールドがあります。
このプロセスがユーザー モードでスケジュールされた jiffy の数。
時間 %lu
このプロセスがカーネル モードでスケジュールされた jiffy の数。
キュータイム %ld
ここで問題になるのは、数値の単位です。jiffy は 1/HZ 秒です。ここで、HZ はカーネル クロックのティック レートであり、このクロック レートを決定するのは難しい部分です。
これが 1 つの特定のシステムにのみ必要な場合は、いくつかのテストを行うか、カーネル ヘッダーを調べて、この値をプログラムにハードコードすることができます。より一般的な方法でそれを決定する方法を知りたい場合は、ソース コードを見て、top のようなツールがどのようにそれを行っているかを調べることができます(old_Hertz_hack()
関数と関連するコメントを参照してください) 。