Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

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 для быстро заканчивающихся команд дает мало информации о реальном размере команды.


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте