Je peux faire une supposition en fonction des noms, mais que sont spécifiquement wall-clock-time, user-cpu-time et system-cpu-time sous UNIX?
Le temps utilisateur-cpu est-il le temps passé à exécuter le code utilisateur tandis que le temps kernel-cpu est le temps passé dans le noyau en raison du besoin d'opérations privilégiées (comme IO sur disque)?
Dans quelle unité de temps cette mesure est-elle.
Et le temps d'horloge murale est-il vraiment le nombre de secondes que le processus a passé sur le processeur ou le nom est-il simplement trompeur?
unix
operating-system
John Humphreys - w00te
la source
la source
Réponses:
L'heure de l'horloge murale est l'heure qu'une horloge sur le mur (ou un chronomètre en main) mesurerait comme s'étant écoulée entre le début du processus et «maintenant».
Le temps utilisateur-cpu et le temps système-cpu sont à peu près comme vous l'avez dit - le temps passé dans le code utilisateur et le temps passé dans le code du noyau.
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 son allumage du processeur (pendant que d'autres processus s'exécutent).
la source
CPUtime = #clock_cycles / clock_rate
ne peut pas être le même que calculer le temps écoulé. Savez-vous si je peux obtenir le temps écoulé à partir du temps CPU?read()
ougetpid()
), le noyau exécute le code au nom de votre programme. Le noyau gère également le multitâche préventif pour que les autres programmes puissent s'exécuter à leur tour, et effectue des travaux généraux pour maintenir le bon fonctionnement du système. Ce code est exécuté en «code noyau» (également en «mode noyau»). Ceci est distinct du code que vous avez écrit et des bibliothèques utilisateur (y compris la bibliothèque système C) que vous exécutez.Heure de l'horloge murale: temps écoulé en fonction de l'horloge interne de l'ordinateur, qui doit correspondre à l'heure du monde extérieur. Cela n'a rien à voir avec l'utilisation du processeur; il est donné pour référence.
Temps CPU utilisateur 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ées en sautant dans le code du noyau et de l' exécution que.Si le temps d'horloge murale <temps CPU, vous exécutez un programme en parallèle. 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 .
la source
L'heure de l'horloge murale est exactement ce qu'elle dit, le temps écoulé tel que mesuré par l'horloge sur votre mur (ou votre montre-bracelet)
Le temps CPU de l'utilisateur est le temps passé dans le "terrain utilisateur", c'est-à-dire le temps passé sur les processus non liés au noyau
Le temps du processeur système est le temps passé dans le noyau, généralement le temps passé à traiter les appels système.
la source
horloge réelle ou murale
réel 7m2.444s
Sur un système avec un processeur à 24 cœurs, ce cmd / processus a pris plus de 7 minutes. Cela en utilisant le plus de parallélisme possible avec tous les cœurs donnés.
utilisateur
utilisateur 76m14.607s
Le cmd / process a utilisé autant de temps cpu. En d'autres termes, sur une machine avec un processeur monocœur, le réel et l'utilisateur seront presque égaux, donc la même commande prendra ~ 76 minutes pour se terminer.
sys
sys 2m29.432s
Il s'agit du temps nécessaire au noyau pour exécuter toutes les opérations de base / au niveau du système pour exécuter cette cmd, y compris le changement de contexte, l'allocation de ressources, etc.
la source
(user + sys) / real
pour représenter ça.