GETRUSAGE(2-BSD) RISC/os Reference Manual GETRUSAGE(2-BSD)
NAME
getrusage - get information about resource utilization
SYNOPSIS
#include <sys/time.h>
#include <sys/resource.h>
#define RUSAGESELF 0 /* calling process */
#define RUSAGECHILDREN -1 /* terminated child processes */
getrusage(who, rusage)
int who;
struct rusage *rusage;
mipsgetrusage(who, rusage, rusagesize)
int who;
struct rusage *rusage;
int rusagesize;
DESCRIPTION
getrusage returns information describing the resources util-
ized by the current process, or all its terminated child
processes. mips_getrusage performs the same function as
getrusage but takes a third argument which is the size of
the rusage structure. This interface will be used in the
future to return MIPS hardware specific resource use infor-
mation as the rusage structure is extended.
The who parameter is one of RUSAGE_SELF or RUSAGE_CHILDREN.
The buffer to which rusage points will be filled in with the
following structure:
struct rusage {
struct timeval ru_utime;/* user time used */
struct timeval ru_stime;/* system time used */
int ru_maxrss;
int ru_ixrss; /* integral shared text memory size */
int ru_idrss; /* integral unshared data size */
int ru_isrss; /* integral unshared stack size */
int ru_minflt; /* page reclaims */
int ru_majflt; /* page faults */
int ru_nswap; /* swaps */
int ru_inblock; /* block input operations */
int ru_oublock; /* block output operations */
int ru_msgsnd; /* messages sent */
int ru_msgrcv; /* messages received */
int ru_nsignals; /* signals received */
int ru_nvcsw; /* voluntary context switches */
int ru_nivcsw; /* involuntary context switches */
};
Printed 11/19/92 Page 1
GETRUSAGE(2-BSD) RISC/os Reference Manual GETRUSAGE(2-BSD)
The fields are interpreted as follows:
ru_utime the total amount of time spent executing
in user mode.
ru_stime the total amount of time spent in the sys-
tem executing on behalf of the
process(es).
ru_maxrss the maximum resident set size utilized (in
number of pages).
ru_ixrss an "integral" value indicating the amount
of memory used by the text segment that
was also shared among other processes.
This value is expressed in units of number
of pages * seconds-of-execution and is
calculated by summing the number of shared
memory pages in use each time the internal
system clock ticks and then averaging over
1 second intervals.
ru_idrss an integral value of the amount of
unshared memory residing in the data seg-
ment of a process (expressed in units of
number of pages * seconds-of-execution).
ru_isrss an integral value of the amount of
unshared memory residing in the stack seg-
ment of a process (expressed in units of
number of pages * seconds-of-execution).
ru_minflt the number of page faults serviced without
any I/O activity; here I/O activity is
avoided by "reclaiming" a page frame from
the list of pages awaiting reallocation.
ru_majflt the number of page faults serviced that
required I/O activity.
ru_nswap the number of times a process was
"swapped" out of main memory.
ru_inblock the number of times the file system had to
perform input.
ru_outblock the number of times the file system had to
perform output.
ru_msgsnd the number of IPC messages sent.
ru_msgrcv the number of IPC messages received.
Page 2 Printed 11/19/92
GETRUSAGE(2-BSD) RISC/os Reference Manual GETRUSAGE(2-BSD)
ru_nsignals the number of signals delivered.
ru_nvcsw the number of times a context switch
resulted due to a process voluntarily giv-
ing up the processor before its time slice
was completed (usually to await availabil-
ity of a resource).
ru_nivcsw the number of times a context switch
resulted due to a higher priority process
becoming runnable or because the current
process exceeded its time slice.
NOTES
The numbers ru_inblock and ru_outblock account only for real
I/O; data supplied by the caching mechanism is charged only
to the first process to read or write the data.
ERRORS
The possible errors for getrusage are:
[EINVAL] The who parameter is not a valid value.
[EFAULT] The address specified by the rusage parameter is
not in a valid part of the process address space.
SEE ALSO
gettimeofday(2), wait(2).
WARNING
There is no way to obtain information about a child process
that has not yet terminated.
Printed 11/19/92 Page 3