utilizacion usos usar tiempo reloj que procesador porcentaje historia como unix operating-system

unix - usar - usos de cpu



¿Qué es específicamente el reloj de pared, el tiempo de la CPU del usuario y el tiempo de la CPU del sistema en UNIX? (4)

El tiempo del reloj de pared es exactamente lo que dice, el tiempo transcurrido medido por el reloj en su pared (o reloj de pulsera)

El tiempo de CPU del usuario es el tiempo que se pasa en "tierra del usuario", es decir, el tiempo empleado en procesos que no son del núcleo.

El tiempo de CPU del sistema es el tiempo que se pasa en el kernel, generalmente el tiempo dedicado al servicio de las llamadas al sistema.

Puedo adivinar en función de los nombres, pero ¿qué es específicamente la hora del reloj de pared, el tiempo de la CPU del usuario y el tiempo de la CPU del sistema en UNIX?

¿El tiempo de la CPU del usuario es la cantidad de tiempo dedicado a ejecutar el código del usuario mientras que el tiempo de kernel-cpu es la cantidad de tiempo que se pasa en el kernel debido a la necesidad de operaciones privilegiadas (como IO en el disco)?

¿Qué unidad de tiempo es esta medición?

¿Y el tiempo del reloj de pared es realmente el número de segundos que el proceso ha pasado en la CPU o el nombre es engañoso?


La hora del reloj de pared es el tiempo que un reloj en la pared (o un cronómetro en la mano) mediría como que ha transcurrido entre el inicio del proceso y ''ahora''.

El tiempo de la CPU del usuario y el tiempo de la CPU del sistema son básicamente como dijiste: la cantidad de tiempo que se pasa en el código de usuario y la cantidad de tiempo invertido en el código del kernel.

Las unidades son segundos (y subsegundos, que pueden ser microsegundos o nanosegundos).

El tiempo del reloj de pared no es la cantidad de segundos que el proceso ha pasado en la CPU; es el tiempo transcurrido, incluido el tiempo dedicado a esperar que encienda la CPU (mientras otros procesos se ejecutan).


Tiempo de reloj de pared: tiempo transcurrido de acuerdo con el reloj interno de la computadora, que debe coincidir con el tiempo en el mundo exterior. Esto no tiene nada que ver con el uso de la CPU; se da como referencia.

Tiempo de CPU del usuario y tiempo del sistema: exactamente lo que piensas. Las llamadas al sistema, que incluyen llamadas de E / S, como read , write , etc., se ejecutan saltando al código del kernel y ejecutándolo.

Si el tiempo del reloj de pared <tiempo de CPU, entonces está ejecutando un programa en paralelo. Si la hora del reloj de pared> tiempo de CPU, está esperando disco, red u otros dispositivos.

Todos se miden en segundos, según el SI .


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

real o de pared

7m2.444 reales

En un sistema con procesador de 24 núcleos, este cmd / proceso tardó más de 7 minutos en completarse. Eso utilizando el mayor paralelismo posible con todos los núcleos dados.

usuario

usuario 76m14.607s

El proceso cmd / ha utilizado esta cantidad de tiempo de CPU. En otras palabras, en la máquina con CPU de un solo núcleo, el real y el usuario serán casi iguales, por lo que el mismo comando tardará aproximadamente 76 minutos en completarse.

sys

sys 2m29.432s

Este es el tiempo que toma el kernel para ejecutar todas las operaciones de nivel básico / sistema para ejecutar este cmd, incluyendo el cambio de contexto, la asignación de recursos, etc.

Nota: El ejemplo asume que su comando utiliza paralelismo / hilos.

Página de manual detallada: https://linux.die.net/man/1/time