Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

ACCT(4)

НАЗВАНИЕ
acct - формат файла с информацией о процессах

СИНТАКСИС

#include <sys/acct.h>

ОПИСАНИЕ
Файлы, которые образуются системным вызовом acct(2), содержат записи следующей структуры, определенной во включаемом файле <sys/acct.h>:

typedef ushort comp_t; /* "Вещественное число": 13 бит
       мантисса, 3 бита порядок */

struct acct {
 char ac_flag; /* Флаг учетной информации */
 char ac_stat; /* Код завершения */
 ushort ac_uid;
 ushort ac_gid;
 dev_t ac_tty;
 time_t ac_btime; /* Время начала */
 comp_t ac_utime; /* Пользовательское время ЦП в
      тактах часов */
 comp_t ac_stime; /* Системное время ЦП в тактах
      часов */
 comp_t ac_etime; /* Астрономическое время выполне-
      ния в тактах часов */
 comp_t ac_mem;  /* Расход памяти в Кб */
 comp_t ac_io;  /* Кол-во переданных символов */
 comp_t ac_rw;  /* Общее число прочитанных и за-
      писанных блоков */
 char ac_comm[8]; /* Имя команды */
};

extern struct acct acctbuf;
extern struct inode *acctp; /* Описатель файла учетной
        информации */
#define AFORK 01  /* Выполнен fork, но не exec */
#define ASU 02  /* Привилегии суперпользователя */
#define ACCTF 0300 /* Тип записи: 00 = acct */

В поле ac_flag флаг AFORK устанавливается при каждом вызове fork(2) и сбрасывается при вызове exec(2). Поле ac_comm наследуется от родительского процесса и сбрасывается при exec(2). Каждый раз, когда система выделяет процессу квант времени, она также добавляет к ac_mem текущий размер процесса, вычисляемый как

  (размер сегмента данных) + (размер сегмента команд) / 
  (количество процессов в памяти, использующих этот сегмент команд)

Значение ac_mem/(ac_stime+ac_utime) может служить хорошим приближением среднего размера процесса, с учетом разделения сегмента команд.

Следующая структура используется различными командами работы с учетной информацией:

/* Общая учетная информация за некоторый период */

struct tacct {
 uid_t   ta_uid;  /* Идент. пользователя */
 char   ta_name[8]; /* Входное имя */
 float   ta_cpu[2]; /* Среднее время ЦП в
         минутах */
 float   ta_kcore[2]; /* Среднее значение
         килобайтоминут */
 float   ta_con[2]; /* Среднее астрономичес-
         кое время выполнения
         в минутах */
 float   ta_du;  /* Суммарное использова-
         ние диска */
 long   ta_pc;  /* Число процессов */
 unsigned short ta_sc;  /* Число сеансов раб. */
 unsigned short ta_dc;  /* Число дисковых прими-
         тивов */
 unsigned short ta_fee;  /* Для спец. применений
         */
};

СМ. ТАКЖЕ
acct(2), exec(2), fork(2).
acctcom(1) в Справочнике пользователя.

СЮРПРИЗЫ
Значение поля ac_mem для быстро заканчивающихся команд дает мало информации о реальном размере команды.

Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT
Обновлено: 13.03.2015