GETRUSAGE
Section: System Calls (2)
Updated: May 13, 1986
Index
Return to Main Contents
NAME
getrusage - get information about resource utilization
SYNOPSIS
#include <sys/time.h>
#include <sys/resource.h>
#define RUSAGE_SELF 0 /* calling process */
#define RUSAGE_CHILDREN -1 /* terminated child processes */
getrusage(who, rusage)
int who;
struct rusage *rusage;
DESCRIPTION
Getrusage
returns information describing the resources utilized by the current
process, or all its terminated child processes.
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; /* not used */
int ru_ixrss; /* not used */
int ru_idrss; /* not used */
int ru_isrss; /* not used */
int ru_minflt; /* not used */
int ru_majflt; /* not used */
int ru_nswap; /* not used */
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 */
};
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 system executing on behalf
of the process(es).
- ru_maxrss
-
the maximum resident set size utilized (in kilobytes). Currently, this field isn't valid.
- 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 kilobytes * 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. Currently, this field isn't valid.
- ru_idrss
-
an integral value of the amount of unshared memory residing in the
data segment of a process (expressed in units of
kilobytes * seconds-of-execution). Currently, this field isn't valid.
- ru_isrss
-
an integral value of the amount of unshared memory residing in the
stack segment of a process (expressed in units of
kilobytes * seconds-of-execution). Currently, this field isn't valid.
- 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. Currently, this field isn't valid.
- ru_majflt
-
the number of page faults serviced that required I/O activity. Currently, this field isn't valid.
- ru_nswap
-
the number of times a process was ``swapped'' out of main
memory. Currently, this field isn't valid.
- 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.
- ru_nsignals
-
the number of signals delivered.
- ru_nvcsw
-
the number of times a context switch resulted due to a process
voluntarily giving up the processor before its time slice was
completed (usually to await availability 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)
BUGS
There is no way to obtain information about a child process
that has not yet terminated.
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- NOTES
-
- ERRORS
-
- SEE ALSO
-
- BUGS
-
This document was created by
man2html,
using the manual pages.
Time: 00:58:53 GMT, September 26, 2024