Provided by: manpages-fr_4.26.0-1_all bug

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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                            time(7)