| Сервер поддерживается Центром Информационных Технологий (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