Um segundo de CPU é um segundo de tempo em uma CPU.
O tempo de execução do processo tem duas medições:
- Tempo de CPU ou a quantidade de tempo que a CPU gastou ativamente executando o processo; e
- Tempo da parede ou a quantidade de tempo que passa entre você iniciando o processo e o processo que termina.
Assumindo um único núcleo de CPU, eles estão relacionados da seguinte forma:
(Wall time) - (CPU time) = (time the CPU spent doing other things)
Portanto, em um exemplo simples, se você executar um processo e levar 10 segundos, mas obtiver uma medida de 7 segundos do processador, durante esses 10 segundos, o processador gastou 3 segundos fazendo outras coisas além de executar o processo.
O tempo de CPU é geralmente dividido em dois tipos:
- tempo "sys" ou "kernel", ou tempo que o kernel gastou fazendo as coisas em seu nome - executando I / O, timers, mutex, o que for
- tempo do "usuário" ou execução executada por um processo no espaço do usuário
Então, por exemplo:
$ time sleep 1
real 0m1.005s
user 0m0.000s
sys 0m0.002s
Nesse caso, estamos dormindo por um segundo. O sistema gastou 2/1000 segundos no espaço do kernel, provavelmente configurando temporizadores e interrupções para nós, sem tempo no espaço do usuário, e a coisa toda levou 1.005 segundos para ser executada, o que significa que durante esse período o computador gastou 0.003 segundos adicionais fazendo outras coisas além de lidar com nosso processo.
Em cima da minha cabeça eu não sei como ou porque você teria um número aparentemente negativo de tempo de CPU.