Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ acct(4) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

acct(2)

exec(2)

fork(2)

acct(1M)

acctcom(1)

acct(4)

NAME

acct − per-process accounting file format

SYNOPSIS

#include <sys/acct.h>

DESCRIPTION

Files produced as a result of calling acct(2) have records in the form defined by <sys/acct.h>, whose contents are:

typedefushort comp_t;/∗ "floating point" ∗/
/∗ 13-bit fraction, 3-bit exponent  ∗/
 structacct
{
     char    ac_flag; /∗ Accounting flag ∗/
     char    ac_stat; /∗ Exit status ∗/
     ushort  ac_uid; /∗ Accounting user ID ∗/
     ushort  ac_gid; /∗ Accounting group ID ∗/
     dev_t   ac_tty; /∗ control typewriter ∗/
     time_t  ac_btime; /∗ Beginning time ∗/
     comp_t  ac_utime; /∗ acctng user time in clock ticks ∗/
     comp_t  ac_stime; /∗ acctng system time in clock ticks ∗/
     comp_t  ac_etime; /∗ acctng elapsed time in clock ticks ∗/
     comp_t  ac_mem; /∗ memory usage in clicks ∗/
     comp_t  ac_io; /∗ chars trnsfrd by read/write ∗/
     comp_t  ac_rw; /∗ number of block reads/writes ∗/
     char    ac_comm[8]; /∗ command name ∗/
};
 #define  AFORK0001     /∗ has executed fork, but no exec ∗/
#define  ASU0002     /∗ used super-user privileges ∗/
#define  ACOMPAT 0004     /∗ used compatibility mode ∗/
#define  ACORE0010     /∗ dumped core ∗/
#define  AXSIG0020     /∗ killed by a signal ∗/
#define  ACCTF0300     /∗ record type: 00 = acct ∗/

In ac_flag, the AFORK flag is turned on by each fork(2) and turned off by an exec(2).  The ac_comm field is inherited from the parent process and is reset by any exec. Each time the system charges the process with a clock tick, it also adds to ac_mem the current process size, computed as follows:

(data size) + (text size) / (number of in-core processes using text)

The value of ac_mem/(ac_stime+ac_utime) can be viewed as an approximation to the mean process size, as modified by text-sharing. 

The structure tacct.h, which resides with the source files of the accounting commands, represents the total accounting format used by the various accounting commands:

/∗
 ∗  total accounting (for acct period), also for day
 ∗/
 struct  tacct {
     uid_t     ta_uid;/∗ userid ∗/
     char      ta_name[8]; /∗ login name ∗/
     float     ta_cpu[2];/∗ cum. cpu time, p/np (mins) ∗/
     float     ta_kcore[2]; /∗ cum kcore-minutes, p/np ∗/
     float     ta_con[2];/∗ cum. connect time, p/np, mins ∗/
     float     ta_du;/∗ cum. disk usage ∗/
     long      ta_pc;/∗ count of processes ∗/
     unsigned short  ta_sc; /∗ count of login sessions ∗/
     unsigned short  ta_dc; /∗ count of disk samples ∗/
     unsigned short  ta_fee; /∗ fee for special services ∗/
};

NOTES

The structure documented above is the AT&T SYSV.2 version of acct.  The 4.2BSD structure is a subset of the one above.  Also, in 4.2BSD, the units for the ac_utime, ac_stime, and ac_etime fields are seconds rather than clock ticks.  CX/UX uses the AT&T SYSV.2 structure. 

If the high resolution timing facility is configured into the currently executing kernel, ac_stime will exclude or include time spent servicing interrupts, depending on what the system timing mode is set to. See hirestmode(2) and CX/UX Programmer’s Guide for more information on the high resolution timing facility. 

SEE ALSO

acct(2), exec(2), fork(2). 
acct(1M) in the CX/UX Administrator’s Reference Manual. 
acctcom(1) in the CX/UX User’s Reference Manual. 

BUGS

The ac_mem value for a short-lived command gives little information about the actual size of the command, because ac_mem may be incremented while a different command (e.g., the shell) is being executed by the process.

CX/UX Programmer’s Reference Manual

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