Act File Format
Propósito
Fornece o formato de arquivo contábil para cada processo.
Descrição
Os arquivos contábe-contábeos fornecem um meio para monitorar o uso do sistema. Esses arquivos também servem como um método para faturar cada processo para uso de processador, materiais e serviços. A chamada de sistema acct produz arquivos contábeos. O arquivo /usr/include/sys/acct.h define os registros nesses arquivos, que são escritos quando uma saída de processo.
A estrutura de act
A estrutura acct no arquivo de cabeçalho acct.h contém os campos a seguir:
| Item | Descrição |
|---|---|
| ac_flag | Especifica uma das seguintes bandeiras contábeis para o processo para o qual está escrito o registro contábil: |
| AFORK | O processo foi criado usando um comando garfo mas um subroutine exec ainda não foi seguido. A subroutine exec desliga a bandeira de AFORK. |
| ASU | O processo usou autoridade de usuário root. |
| ac_stat | Especifica o status de saída. Uma sinalização que indica como o processo finalizou. |
| ac_uid | Especifica o ID do usuário do processo para o qual o registro contábil está escrito. |
| ac_gid | Especifica o ID do grupo do processo para o qual o registro contábil está escrito. |
| ac_tty | Especifica o terminal a partir do qual o processo foi iniciado. |
| ac_wlmkey | Possui uma chave numérica de 64-bit representando a classe do Gerente de Carga de Trabalho a qual o processo pertencia A Interface de Programação do Aplicativo Gerente de Carga de Trabalho fornece a subroutine wlm_key2class para converter a chave de volta para um nome de classe. |
| ac_btime | Especifica o horário de início. O tempo em que o processo começou. |
| ac_utime | Especifica a quantidade de tempo de usuário, em segundos, utilizada pelo processo. |
| ac_stime | Especifica a quantidade de tempo do sistema, em segundos, utilizada pelo processo. |
| ac_etime | Especifica a quantidade de tempo, em segundos, decorrida desde que o comando correu. |
| ac_mem | Especifica a quantidade média de memória utilizada pelo processo. A cada relógio interrompe (ou relógio tick,100 vezes por segundo), a rotina sys_timer é chamada para atualizar os dados do usuário para o processo atual. Se o processo estiver no modo de usuário, tanto seus valores de uso de memória u_utime quanto de memória são incrementados; caso contrário, apenas o seu valor u_stime é incrementado. A rotina sys_timer chama a rotina vms_rusage para obter os kilobytes de memória real sendo usados por TEXTSEG (#1), o PRIVSEG (#2) e os segmentos de big-data (#3-11), se utilizados. Esses valores são adicionados ao valor total de uso da memória em cada relógio de clock durante o qual o processo não está no modo kernel. Quando o processo termina, a rotina acctexit computa quantas tiquetes de clock ocorreram enquanto o processo executado (nos modos de usuário e kernel) e divide o valor total de uso da memória por este número para dar um uso de memória média para o processo. Este valor é registrado como um número inteiro curto sem sinal de dois bytes. |
| ac_io | Especifica o número de caracteres transferidos pelo processo. |
| ac_rw | Especifica o número de blocos lidos ou escritos pelo processo. |
| ac_comm | Especifica o nome do comando que iniciou o processo. Um processo infantil criado por uma subroutine garfo recebe essas informações do processo pai. Um subbroutine exec reconfigura este campo. |
A Estrutura de tacto
A estrutura tacct , que não faz parte do arquivo de cabeçalho acct.h , representa o formato de contabilidade total usado pelos vários comandos de contabilidade:
struct tacct {
uid_t ta_uid; /* user-ID */
char ta_name[8]; /* login name */
float ta_cpu[2]; /* cum. CPU time, p/np (mins) */
float ta_kcore[2]; /* cum. kcore-mins, p/np */
float ta_io[2]; /* cum. chars xferred (512s) */
float ta_rw[2]; /* cum. blocks read/written */
float ta_con[2]; /* cum. connect time, p/np, mins */
float ta_du; /* cum. disk usage */
long ta_qsys; /* queuing sys charges (pgs) */
float ta_fee; /* fee for special services */
long ta_pc; /* count of processes */
unsigned short ta_sc; /* count of login sessions */
unsigned short ta_dc; /* count of disk samples */
};