web-dev-qa-db-fra.com

Quels sont spécifiquement les paramètres d'horloge murale, d'utilisateur et de système dans UNIX?

Je peux deviner en fonction des noms, mais quels sont spécifiquement les paramètres horloge-mur, utilisateur-cpu et système-cpu-temps sous UNIX?

User-cpu time est-il le temps passé à exécuter le code utilisateur tandis que kernel-cpu temporise le temps passé dans le noyau en raison de la nécessité d'opérations privilégiées (comme IO sur disque)?

En quelle unité de temps cette mesure est-elle exprimée?.

Et le temps d’horloge est-il vraiment le nombre de secondes que le processus a passé sur le processeur ou le nom est-il trompeur?

127

Le temps d'horloge murale est le temps qu'une horloge sur le mur (ou un chronomètre en main) mesurerait comme s'être écoulée entre le début du processus et "maintenant".

Le temps utilisateur-cpu et le temps système-cpu sont à peu près ce que vous avez dit - le temps passé en code utilisateur et le temps passé en code noyau.

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

La durée 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 sa mise sous tension du processeur (pendant que d'autres processus s'exécutent).

125
Jonathan Leffler

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

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

Si l'heure de l'horloge murale est <temps de la CPU, vous exécutez un programme en parallèle. Si l'heure de l'horloge murale> le temps de la CPU, vous attendez un disque, un réseau ou d'autres périphériques.

Tous sont mesurés en secondes, par SI .

33
Fred Foo

L'heure de l'horloge murale correspond exactement à ce qui est indiqué, le temps écoulé, mesuré par l'horloge de votre mur (ou de votre montre-bracelet).

Le temps utilisateur est le temps passé dans "utilisateur", c'est-à-dire le temps passé sur des processus non noyaux

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

6
ennuikiller
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

horloge réelle ou murale

7m2.444s réels

Sur un système avec un processeur à 24 cœurs, cette cmd/processus prenait plus de 7 minutes. Cela en utilisant le plus grand parallélisme possible avec tous les noyaux donnés.

utilisateur

utilisateur 76m14.607s

Le cmd/processus a utilisé autant de temps CPU. En d’autres termes, sur une machine dotée d’un processeur à cœur unique, le réel et l’utilisateur seront presque égaux; la même commande prendra donc environ 76 minutes.

sys

sys 2m29.432s

C'est le temps pris par le noyau pour exécuter toutes les opérations de base/système afin d'exécuter cette cmd, y compris la commutation de contexte, l'allocation de ressources, etc.

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

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

6
147.3k