|
| ||||||||||||
| ||||||||||||
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; /* Для спец. применений
*/
};
СМ. ТАКЖЕ СЮРПРИЗЫ |
|
CITForum © 1997–2025