Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getrusage(2) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

gettimeofday, settimeofday, ftime

wait, waitpid



GETRUSAGE(2,L)              AIX Technical Reference              GETRUSAGE(2,L)



-------------------------------------------------------------------------------
getrusage, vtimes



PURPOSE

Gets information about resource utilization.

SYNTAX

#include <sys/time.h>
#include <sys/resource.h>

#define RUSAGE_SELF      0    /*calling process*/
#define RUSAGE_CHILDREN  -1   /*terminated child process*/

getrusage (who,rusage)
int who;
struct rusage *rusage;

DESCRIPTION

The getrusage system call returns information describing the resources utilized
by the current process, or all its waited-for 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*/
     long  ru_maxrss;
     long  ru_ixrss;             /*integral shared text memory size*/
     long  ru_idrss;             /*integral unshared data size*/
     long  ru_isrss;             /*integral unshared stack size*/
     long  ru_minflt;            /*page reclaims*/
     long  ru_majflt;            /*page faults*/
     long  ru_nswap;             /*swaps*/
     long  ru_inblock;           /*block input operations*/
     long  ru_oublock;           /*block output operations*/
     long  ru_msgsnd;            /*messages sent*/
     long  ru_msgrcv;            /*messages received*/
     long  ru_nsignals;          /*signals received*/
     long  ru_nvcsw;             /*voluntary context switches*/
     long  ru_nivcsw;            /*involuntary context switches*/
  };

The fields are interpreted as follows:

ru_utime
        The total amount of time spent executing in user mode.




Processed November 7, 1990      GETRUSAGE(2,L)                                1





GETRUSAGE(2,L)              AIX Technical Reference              GETRUSAGE(2,L)



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).

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 one second
        intervals.

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).

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).

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_oublock
        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.





Processed November 7, 1990      GETRUSAGE(2,L)                                2





GETRUSAGE(2,L)              AIX Technical Reference              GETRUSAGE(2,L)



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.

Note:  The numbers ru_inblock and ru_oublock 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.

COMPATIBILITY NOTE

To provide compatibility with older programs, the interface to the BSD vtimes
function is supported.  It is used by compiling with the Berkeley Compatibility
Library (libbsd.a).  Its syntax is as follows:

#include <sys/vtimes.h>

vtimes (par_vm, ch_vm)
struct vtimes * par_vm, *ch_vm;

The vtimes subroutine returns accounting information for the current process
and for the terminated child processes of the current process.  Either par_vm
or ch_vm or both may be 0, in which case only the information for the pointers
which are nonzero is returned.

After the call, each buffer contains information as defined by the contents of
the include file sys/vtimes.h.

ERROR CONDITIONS

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.

RELATED INFORMATION

In this book:  "gettimeofday, settimeofday, ftime" and "wait, waitpid."










Processed November 7, 1990      GETRUSAGE(2,L)                                3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026