Provided by: manpages-fr_3.65d1p1-1_all bug

NOM

       time - Panorama des fonctions liées au temps et aux temporisations

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 maintenue par le noyau qui mesure le temps en jiffies. La durée  d'un  jiffy  est
       déterminée par la valeur de la constante noyau HZ.

       La  précision  de  nombreux  appels  système  et  horodatages  est limitée par la résolution de l'horloge
       logicielle, une horloge maintenue par le noyau qui mesure le temps en jiffies. La taille 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 à une autre. Sur i386, la situation est la suivante : pour les  noyaux  jusqu'à  2.4.x
       inclus,  HZ  vaut 100, ce qui donne une valeur de jiffy de 10 millisecondes ; à partir de 2.6.0, HZ a été
       augmenté à 1000, ainsi un jiffy était équivalent à 1 milliseconde. Depuis le noyau 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  le  noyau 2.6.20,
       il  est  aussi possible d'utiliser 300 ; cette valeur est divisible par les fréquences 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).

   Temporisations haute résolution
       Avant Linux 2.6.21, la précision des appels système gérant les temporisations et les sommeils (voir  plus
       loin) était limitée par la taille du « jiffy ».

       Depuis  la  version 2.6.21, Linux gère les temporisations haute résolution (HRT : high-resolution timers)
       de manière optionnelle en configurant CONFIG_HIGH_RES_TIMERS. Sur les systèmes gérant les  temporisations
       haute  résolution,  la  précision des appels système gérant les temporisations et les sommeils n'est plus
       limitée par le « jiffy » et peut être aussi fine que le système  ne  le  permette  (une  précision  d'une
       microseconde  est  typique  sur  les  matériels  actuels). Vous pouvez savoir si les temporisations haute
       résolution sont gérées 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  temporisations  haute  résolution ne sont pas gérées par toutes les architectures matérielles. Cette
       gestion est disponible sur x86, arm et powerpc parmi d'autres.

   L'époque (Epoch)
       Les systèmes UNIX représentent le temps depuis l'époque (Epoch), qui est le 1er janvier  1970  à 00:00:00
       (UTC).

       Un  programme peut déterminer le temps calendaire avec gettimeofday(2), qui renvoie le temps (en secondes
       et microsecondes) écoulé depuis l'époque ; time(2) fournit  une  information  similaire,  mais  avec  une
       précision d'une seconde. Le temps système peut être modifié avec settimeofday(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 ctime(3), 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ère sont décrites dans ctime(3),
       strftime(3) et strptime(3).

   Dormir et placer des temporisations
       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 une temporisation 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).

   Temporisation relâchée
       Depuis  Linux 2.6.28,  la  valeur  de  « temporisation  relâchée » peut être contrôlée pour un thread. La
       temporisation relâchée 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'autorisation de ce délai permet au noyau de
       coalescer les événements de réveil, en réduisant donc é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), 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),
       pthread_getcpuclockid(3), sleep(3), strftime(3), strptime(3), timeradd(3), usleep(3), rtc(4), hwclock(8)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies peuvent être trouvées à l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».