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 */
};