oracular (7) time.7.gz

Provided by: manpages-fr_4.23.1-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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.