A CPU-second is one second of time on a CPU.
Process execution time has two measurements:
- CPU time, or the amount of time that the CPU spent actively running the process; and
- Wall time, or the amount of time that passes between you starting the process and the process ending.
Assuming a single CPU core, they are related as so:
(Wall time) - (CPU time) = (time the CPU spent doing other things)
So in a simple example, if you run a process and it takes 10 seconds but you get a measurement of 7 CPU-seconds, then during that 10 seconds the CPU spent 3 seconds doing things other than execute your process.
CPU time is generally split into two types:
- "sys" or "kernel" time, or time that the kernel spent doing things on your process' behalf -- running I/O, timers, mutex's, whatever
- "user" time, or execution run by a process in user space
So for example:
$ time sleep 1
real 0m1.005s
user 0m0.000s
sys 0m0.002s
In this case, we are sleeping for one second. The system spent 2/1000 seconds in kernel space, probably setting up timers and interrupts for us, no time in user space, and the whole thing took 1.005 seconds to run, which means that during that time period the computer spent an additional 0.003 seconds doing things other than dealing with our process.
Off the top of my head I don't know how or why you'd get an apparently negative number for CPU time.