Quelles sont précisément les heures de l’horloge, le temps utilisateur et le temps système dans UNIX?

Je peux prendre une hypothèse basée sur les noms, mais que sont spécifiquement les horloges murales, user-cpu-time et system-cpu-time sous UNIX?

Est-ce que user-cpu time est la quantité de temps passé à exécuter le code utilisateur pendant que le kernel-cpu chronomètre la quantité de temps passé dans le kernel en raison du besoin d’opérations privilégiées (comme IO sur disque)?

Quelle unité de temps cette mesure est-elle?

Et l’heure de l’horloge est-elle vraiment le nombre de secondes que le processus a passé sur le processeur ou le nom est-il simplement trompeur?

L’heure de l’horloge est le temps qu’une horloge sur le mur (ou un chronomètre en main) mesurerait comme étant écoulé entre le début du processus et «maintenant».

Le temps utilisateur-processeur et le temps système-processeur sont à peu près comme vous l’avez dit – le temps passé en code utilisateur et le temps passé en code kernel.

Les unités sont des secondes (et des sous-secondes, qui peuvent être des microsecondes ou des nanosecondes).

L’heure de l’horloge murale n’est pas le nombre de secondes que le processus a passé sur le processeur; c’est le temps écoulé, y compris le temps passé à attendre que le processeur soit activé (alors que d’autres processus sont en cours d’exécution).

Heure de l’horloge murale: le temps écoulé en fonction de l’horloge interne de l’ordinateur doit correspondre à l’heure dans le monde extérieur. Cela n’a rien à voir avec l’utilisation du processeur; c’est donné pour référence.

Temps CPU et temps système: exactement ce que vous pensez. Les appels système, qui incluent les appels d’E / S tels que read , write , etc., sont exécutés en sautant dans le code du kernel et en l’exécutant.

Si l’heure de l’horloge murale Temps CPU, vous attendez un disque, un réseau ou d’autres périphériques.

Tous sont mesurés en secondes, selon le SI .

L’heure de l’horloge murale est exactement ce qu’elle dit, le temps écoulé tel que mesuré par l’horloge de votre mur (ou montre-bracelet)

Le temps CPU utilisateur est le temps passé en “utilisateur”, c’est-à-dire le temps passé sur des processus non-kernel

Le temps processeur système est le temps passé dans le kernel, généralement le temps passé à traiter les appels système.

 time [WHAT-EVER-COMMAND] 

 real 7m2.444s user 76m14.607s sys 2m29.432s $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 24 

réel ou horloge

vrai 7m2.444s

Sur un système doté d’un processeur à 24 cœurs, ce processus / processus a pris 7+ minutes. Cela en utilisant le parallélisme le plus possible avec tous les kernelx donnés.

utilisateur

utilisateur 76m14.607s

Le cmd / processus a utilisé beaucoup de temps CPU. En d’autres termes, sur une machine avec un seul processeur, le réel et l’utilisateur seront presque égaux, donc la même commande prendra environ 76 minutes.

sys

sys 2m29.432s

Il s’agit du temps nécessaire au kernel pour exécuter toutes les opérations de base / niveau système pour exécuter cette commande, y compris le changement de contexte, l’allocation de ressources, etc.

Remarque: L’exemple suppose que votre commande utilise le parallélisme / les threads.

Page de manuel détaillée: https://linux.die.net/man/1/time