GETRUSAGE(2) — NEWS-OS Programmer’s Manual
名称
getrusage − リソースの利用に関する情報を取り出す
形式
#include <sys/time.h>
#include <sys/resource.h>
#defineRUSAGE_SELF 0 /∗ calling process ∗/
#defineRUSAGE_CHILDREN -1 /∗ terminated child processes ∗/
getrusage(who, rusage)
int who;
struct rusage ∗rusage;
解説
getrusage は、 現プロセスまたは終了したすべての(現プロセスの)子プロセスによって 利用されたリソースに関する 情報を返します。who パラメタは、RUSAGE_SELF または RUSAGE_CHILDREN のいずれかです。 rusage が指し示すバッファには、次の構造体が入れられます。
structrusage {
struct timeval ru_utime;/∗ user time used ∗/
struct timeval ru_stime;/∗ system time used ∗/
intru_maxrss;
intru_ixrss;/∗ integral shared memory size ∗/
intru_idrss;/∗ integral unshared data size ∗/
intru_isrss;/∗ integral unshared stack size ∗/
intru_minflt;/∗ page reclaims ∗/
intru_majflt;/∗ page faults ∗/
intru_nswap;/∗ swaps ∗/
intru_inblock;/∗ block input operations ∗/
intru_oublock;/∗ block output operations ∗/
intru_msgsnd;/∗ messages sent ∗/
intru_msgrcv;/∗ messages received ∗/
intru_nsignals;/∗ signals received ∗/
intru_nvcsw;/∗ voluntary context switches ∗/
intru_nivcsw;/∗ involuntary context switches ∗/
};
フィールドは、 次のように解釈されます。
ru_utime ユーザモードでの実行に費やされた時間の合計。
ru_stime プロセスのためのシステムの実行で費やされた時間の合計。
ru_maxrss 利用された最大のレジデントセットサイズ(Kバイト単位)。
ru_ixrss 他のプロセスとの間で共有されたテキストセグメントによって使用されたメモリ量を 示す“積分”値。 この値は、 Kバイト ∗ 実行秒数単位で表され、 内部システムクロックが時間を 刻むたびに使用されていた共有メモリページの数を 合計し、 それを 1秒間隔に平均化することによって計算されます。
ru_idrss プロセスのデータセグメントに常駐した共有でないメモリの量を 示す(Kバイト ∗ 実行時間(秒単位)で表された)積分値。
ru_isrss プロセスのスタックセグメントに常駐した共有でないメモリの量を 示す(Kバイト ∗ 実行時間(秒単位)で表された)積分値。
ru_minflt 入出力動作以外によって生じたページフォールトの数。 ここでの入出力動作は、 再割り当てを 待機しているページのリストからの ページフレームの再利用 を 除外したものです。
ru_majflt 要求された入出力動作によって生じたページフォールトの数。
ru_nswap プロセスがメインメモリからスワップアウトされた回数。
ru_inblock ファイルシステムが入力を 行なった回数。
ru_outblock ファイルシステムが出力を 行なった回数。
ru_msgsnd 送られたIPCメッセージの数。
ru_msgrcv 受け取られたIPCメッセージの数。
ru_nsignals 送られたシグナルの数。
ru_nvcsw (普通はリソースが使用可能になるのを 待つための)タイムスライスが完了する前にプロセスが自発的にプロセッサを 放棄したためにコンテクストスイッチが生じた回数。
ru_nivcsw より優先順位の高いプロセスが実行可能になったため、 または現プロセスがそのタイムスライスを オーバーしたためにコンテクストスイッチが生じた回数。
注意事項
数値 ru_inblock および ru_outblock は、 実際の入出力だけを 対象としています。 キャッシングメカニズムによって供給されたデータは、 そのデータの読み取りまたは書き込みを 行った 最初のプロセスにだけ課されます。
エラー
getrusage では、 次のエラーが発生することがあります。
[EINVAL] who パラメタが有効な値ではない。
[EFAULT] rusage パラメタで指定されたアドレスが、 プロセスのアドレススペースの有効な部分にはない。
関連事項
バグ
まだ終了していない子プロセスに関する情報を 得る方法はありません。
NEWS-OSRelease 4.1C