|
ACCT(4)НАЗВАНИЕ СИНТАКСИС #include <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; /* Для спец. применений */ }; СМ. ТАКЖЕ СЮРПРИЗЫ |
|