Provided by: manpages-ru_4.27.0-1_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> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                          time(7)