Man page - time(7)

Packages contains this manual

Available languages:

en fr es pl ja ru ro

Manual

time

NOM
DESCRIPTION
Temps réel et temps processus
L’horloge matĂ©rielle
L’horloge logicielle, HZ, et les Jiffies
Horloges du systÚme et des processus ; espaces de noms de temps
Temporisations haute résolution
L’Époque (Epoch)
Temps décomposé
Dormir et placer des temporisateurs
Marge de temporisateur
VOIR AUSSI
TRADUCTION

NOM

time – Survol des fonctions liĂ©es au temps et aux temporisateurs

DESCRIPTION

Temps réel et temps processus

Le temps rĂ©el est dĂ©fini comme le temps mesurĂ© Ă  partir d’un point fixe, soit un point standard dans le passĂ© (voir la dĂ©finition de l’époque et du temps calendaire ci-dessous), soit un point (p.ex. le dĂ©marrage) dans la vie d’un processus ( temps Ă©coulĂ© ).

Le temps processus est dĂ©fini comme le temps CPU utilisĂ© par un processus. Il est parfois divisĂ© entre une partie utilisateur et une partie systĂšme . Le temps CPU utilisateur est le temps passĂ© Ă  exĂ©cuter du code en mode utilisateur. Le temps CPU systĂšme est le temps passĂ© par le noyau en mode systĂšme pour le processus (p.ex. pendant des appels systĂšme). La commande time (1) peut ĂȘtre utilisĂ©e pour dĂ©terminer le temps CPU utilisĂ© pendant l’exĂ©cution du programme. Un programme peut dĂ©terminer le temps CPU qu’il a utilisĂ© avec les fonctions times (2), getrusage (2) et clock (3).

L’horloge matĂ©rielle

La plupart des ordinateurs ont une horloge matĂ©rielle (alimentĂ©e par une pile) que le noyau lit au dĂ©marrage du systĂšme pour initialiser l’horloge logicielle. Pour plus de dĂ©tails, consultez rtc (4) et hwclock (8).

L’horloge logicielle, HZ, et les Jiffies

La prĂ©cision de divers appels systĂšme qui dĂ©finissent des dĂ©lais (par exemple select (2), sigtimedwait (2)) ou qui mesurent le temps processeur (par exemple getrusage (2)) est limitĂ©e par la rĂ©solution de l’ horloge logicielle , une horloge entretenue par le noyau qui mesure le temps en jiffies (NDT : jiffy – trĂšs courte durĂ©e). La durĂ©e d’un jiffy est dĂ©terminĂ©e par la valeur de la constante du noyau HZ .

La valeur de HZ varie d’une version du noyau et d’une architecture Ă  l’autre. Sur i386, la situation est la suivante : pour les noyaux jusqu’à Linux 2.4.x inclus, HZ vaut 100, ce qui donne une valeur de jiffy de 10 millisecondes ; Ă  partir de Linux 2.6.0, HZ a Ă©tĂ© augmentĂ© Ă  1000, ainsi un jiffy Ă©tait Ă©quivalent Ă  1 milliseconde. Depuis Linux 2.6.13, la valeur de HZ est un paramĂštre de configuration du noyau, et peut valoir 100, 250 (la valeur par dĂ©faut) ou 1000, donnant des valeurs de 10, 4 et 1 millisecondes, respectivement, pour un jiffy. Depuis Linux 2.6.20, il est aussi possible d’utiliser 300 ; cette valeur est un multiple exact de la frĂ©quence des formats vidĂ©os les plus courants (PAL, 25 Hz ; NTSC, 30 Hz).

L’appel systĂšme times (2) est un cas particulier. Il renvoie le temps avec une granularitĂ© dĂ©finie par la constante du noyau USER_HZ . Les applications utilisateur peuvent obtenir la valeur de cette constante avec sysconf(_SC_CLK_TCK) .

Horloges du systÚme et des processus ; espaces de noms de temps

Le noyau gĂšre une sĂ©rie d’horloges qui mesurent diffĂ©rentes sortes de temps Ă©coulĂ©s et virtuels (c’est-Ă -dire, consommĂ©s par le CPU). Ces horloges sont dĂ©crites dans clock_gettime (2). Quelques unes de ces horloges sont rĂ©glables en utilisant clock_settime (2). Les valeurs de certaines horloges sont virtualisĂ©es par les espaces de noms temps. Consulter time_namespaces (7).

Temporisations haute résolution

Avant Linux 2.6.21, la prĂ©cision des appels systĂšme de temporisateur et de mise en sommeil (voir plus loin) Ă©tait limitĂ©e par la taille d’un jiffy.

Depuis Linux 2.6.21, Linux gĂšre les temporisateurs haute rĂ©solution (HRT : high-resolution timers) de maniĂšre optionnelle en configurant CONFIG_HIGH_RES_TIMERS . Sur les systĂšmes gĂ©rant les temporisateurs haute rĂ©solution, la prĂ©cision des mises en sommeil et des appels systĂšme des temporisateurs n’est plus limitĂ©e par le jiffy et peut ĂȘtre aussi fine que le systĂšme le permet (une prĂ©cision d’une microseconde est typique sur les matĂ©riels actuels). Vous pouvez savoir si les temporisateurs haute rĂ©solution sont gĂ©rĂ©s en vĂ©rifiant la prĂ©cision renvoyĂ©e par un appel Ă  clock_getres (2) ou en regardant les entrĂ©es « resolution » du fichier /proc/timer_list .

Les temporisateurs haute résolution ne sont pas gérés par toutes les architectures matérielles. Cette gestion est disponible sur x86, ARM et PowerPC, entre autres.

L’Époque (Epoch)

Les systĂšmes UNIX reprĂ©sentent le temps depuis l’ Époque , qui est le 1er janvier 1970 à 00:00:00 (UTC).

Un programme peut dĂ©terminer le temps calendaire avec l’horloge CLOCK_REALTIME de clock_gettime (2), qui renvoie le temps (en secondes et nanosecondes) Ă©coulĂ© depuis l’ Époque ; time (2) fournit une information similaire, mais avec une prĂ©cision Ă  la seconde la plus proche. Le temps systĂšme peut ĂȘtre modifiĂ© avec clock_settime (2).

Temps décomposé

Certaines fonctions de bibliothÚque utilisent une structure de type tm pour représenter le temps décomposé , qui stocke le temps décomposé en composantes distinctes (année, mois, jour, heure, minute, seconde, etc.). Cette structure est décrite dans tm (3type), qui décrit également les fonctions qui font la conversion entre temps calendaire et temps décomposé. Les fonctions permettant les conversions entre temps décomposé et représentation sous forme de chaßne de caractÚres sont décrites dans ctime (3), strftime (3) et strptime (3).

Dormir et placer des temporisateurs

Divers appels systĂšme et fonctions permettent Ă  un programme de s’endormir (suspendre son exĂ©cution) pour une durĂ©e spĂ©cifiĂ©e. Consultez nanosleep (2), clock_nanosleep (2) et sleep (3).

Divers appels systÚme permettent à un processus de placer un temporisateur qui expirera à un point donné dans le futur, et éventuellement à des intervalles répétés. Consultez alarm (2), getitimer (2), timerfd_create (2) et timer_create (2).

Marge de temporisateur

Depuis Linux 2.6.28, la valeur de cette « marge de temporisateur » (timer slack) peut ĂȘtre contrĂŽlĂ©e pour un thread. Cette marge de temporisation est l’intervalle de temps pendant lequel le noyau pourrait diffĂ©rer le rĂ©veil de certains appels qui bloquent avec un dĂ©lai d’expiration. L’activation de ce dĂ©lai permet au noyau de fusionner les Ă©vĂ©nements de rĂ©veil, rĂ©duisant donc ainsiĂ©ventuellement le nombre de rĂ©veils systĂšme et la consommation d’énergie. Veuillez consulter la description de PR_SET_TIMERSLACK dans prctl (2) pour obtenir plus de prĂ©cisions.

VOIR AUSSI

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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .