Provided by: manpages-ru_4.19.0-7_all bug

ИМЯ

       time - обзор времени и таймеров

ОПИСАНИЕ

   Реальное время и время процесса
       Реальное  время  (real  time)  —  время,  измеряемое от некоторой постоянной точки, или от
       стандартной точки в прошлом  (смотрите  описание  эпохи  (Epoch)  и  календарного  времени
       далее),  или  от некоторой точки (например, с момента запуска) в жизни процесса (прошедшее
       время (elapsed time)).

       Время  процесса  (process  time)  —  количество  процессорного  времени,   использованного
       процессом.   Иногда   его   делят   на   пользовательское  (user)  и  системное  (system).
       Пользовательское  время  ЦП  —  это  время,  потраченное  на  исполнение  кода  в   режиме
       пользователя. Системное время ЦП — это время, потраченное ядром, выполняющемся в системном
       режиме, для процесса (например, на обработку системных вызовов). Команда time(1) позволяет
       определить  количество  процессорного  времени,  затраченного  при  выполнении  программы.
       Программа  может  определить  количество  потраченного  процессорного  времени  с  помощью
       times(2), getrusage(2) или clock(3).

   Аппаратные часы
       В  большинстве  компьютеров  (оснащённых  батареей)  имеются аппаратные часы, которые ядро
       читает при запуске для инициализации программных часов. Подробности смотрите  в  rtc(4)  и
       hwclock(8).

   Программные часы, HZ и миги (jiffies)
       Точность  различных системных вызовов, которые задают время ожидания (timeouts) (например,
       select(2),  sigtimedwait(2))  и  измеряют  процессорное  время  (например,  getrusage(2)),
       ограничена  точностью  программных часов (software clock) — часов, поддерживаемых ядром, у
       которых время измеряется в мигах (jiffies). Размер мига определяется  значением  константы
       ядра HZ.

       The  value  of  HZ  varies  across  kernel  versions  and hardware platforms.  On i386 the
       situation is as follows: on kernels up to and including Linux 2.4.x, HZ was 100, giving  a
       jiffy  value  of  0.01 seconds; starting with Linux 2.6.0, HZ was raised to 1000, giving a
       jiffy of 0.001 seconds.  Since Linux 2.6.13,  the  HZ  value  is  a  kernel  configuration
       parameter  and  can  be  100,  250  (the  default)  or  1000, yielding a jiffies value of,
       respectively, 0.01, 0.004, or 0.001 seconds.  Since Linux 2.6.20, a further  frequency  is
       available: 300, a number that divides evenly for the common video frame rates (PAL, 25 Hz;
       NTSC, 30 Hz).

       Системный вызов times(2) — это особый случай. Он выдаёт время  с  точностью,  определяемой
       константой  ядра  USER_HZ.  Приложения  пользовательского  пространства  могут  определить
       значение этой константы с помощью sysconf(_SC_CLK_TCK).

   System and process clocks; time namespaces
       The kernel supports a range of clocks that measure various kinds of  elapsed  and  virtual
       (i.e.,  consumed CPU) time.  These clocks are described in clock_gettime(2).  A few of the
       clocks are settable using clock_settime(2).  The values of certain clocks are  virtualized
       by time namespaces; see time_namespaces(7).

   Таймеры высокой точности
       До  Linux 2.6.21 точность системных вызовов таймера и сна (смотрите далее) была ограничена
       размером мига.

       Начиная с Linux 2.6.21, Linux поддерживает  таймеры  высокой  точности  (HRT),  включаемые
       через CONFIG_HIGH_RES_TIMERS. В системе, которая поддерживает HRT, точность сна и таймеров
       в системных  вызовах  больше  не  ограничена  мигом,  а  только  точностью  аппаратуры  (в
       современной   аппаратуре,   обычно,   микросекундная   точность).   Вы  можете  определить
       поддерживаются ли таймеры высокой точности, проверив результат вызова clock_getres(2)  или
       поискав записи «resolution» в /proc/timer_list.

       HRTs  are  not supported on all hardware architectures.  (Support is provided on x86, ARM,
       and PowerPC, among others.)

   Эпоха
       В системах UNIX время считается в  секундах  и  начинается  с  эпохи  (Epoch),  1970-01-01
       00:00:00 +0000 (UTC).

       Программа  может  определить  календарное  время  c  помощью  часов  CLOCK_REALTIME  через
       clock_gettime(2), которые возвращают время (в секундах и наносекундах), прошедшее с начала
       эпохи;  вызов  time(2)  выдаёт  подобную  информацию,  но  с точностью только до ближайшей
       секунды. Системное время можно изменять с помощью clock_settime(2).

   Календарное время, разделённое на компоненты
       Certain library functions use a structure of type tm to represent broken-down time,  which
       stores  time value separated out into distinct components (year, month, day, hour, minute,
       second, etc.).  This structure is described in tm(3type), which also  describes  functions
       that convert between calendar time and broken-down time.  Functions for converting between
       broken-down time and printable  string  representations  of  the  time  are  described  in
       ctime(3), strftime(3), and strptime(3).

   Таймеры сна и их установка
       Различные   системные   вызовы  и  функции  позволяют  программе  спать  (приостанавливать
       выполнение) заданный  промежуток  времени;  смотрите  nanosleep(2),  clock_nanosleep(2)  и
       sleep(3).

       Различные системные вызовы позволяют процессу устанавливать таймеры, которые срабатывают в
       какой-то момент в будущем, и, возможно, через определённые интервалы;  смотрите  alarm(2),
       getitimer(2), timerfd_create(2) и timer_create(2).

   Допуск таймера
       Начиная  с  Linux 2.6.28, возможно контролировать значение «допуска таймера» (timer slack)
       нити. Допуск таймера — это промежуток времени, на который ядро может задержать пробуждение
       определённых  системных  вызовов,  заблокированных  на  время. Эта задержка позволяет ядру
       объединять события пробуждения, таким образом сокращая количество системных пробуждений  и
       экономя энергию. Подробней смотрите описание PR_SET_TIMERSLACK в prctl(2).

СМ. ТАКЖЕ

       date(1), time(1), timeout(1), adjtimex(2), alarm(2), clock_gettime(2), clock_nanosleep(2),
       getitimer(2), getrlimit(2), getrusage(2), gettimeofday(2), nanosleep(2), stat(2), time(2),
       timer_create(2), timerfd_create(2), times(2), utime(2), adjtime(3), clock(3),
       clock_getcpuclockid(3), ctime(3), ntp_adjtime(3), ntp_gettime(3),
       pthread_getcpuclockid(3), sleep(3), strftime(3), strptime(3), timeradd(3), usleep(3),
       rtc(4), time_namespaces(7), hwclock(8)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Azamat Hackimov
       <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.