At any given time, the CPU can be doing one of seven things.
- Idle - the processor is not doing any work and is waiting for something to do.
- Running user code - specified as "user" time.
- Running system code - executing code in the Linux kernel on behalf of the application code. This is "system" time.
- Nice - executing user code that has been "nice"ed or set to run at a lower priority than normal processes.
- iowait - spending time waiting for I/O (such as disk or network) to complete.
- irq state - high priority kernal code handling a hardware interrupt.
- softirq mode - executing kernel code that was also triggered by an interrupt, but running at a lower priority.