O código executado em um sistema unix é classificado como código do kernel ou código de usuário. O código de aterramento do usuário é sempre anexado a um processo, portanto, se a CPU estiver ocupada executando o código de aterramento do usuário, ele será exibido em alguma linha em top
. O código do kernel é normalmente anexado a um processo: se o kernel está executando uma chamada de sistema, então o processamento no kernel é considerado como pertencente a esse processo. A hora do kernel é a "hora do sistema" informada pelo utilitário time
.
Algumas das coisas que o kernel faz não podem ser diretamente contabilizadas em um processo. Em particular, as interrupções de hardware não pertencem intrinsecamente a um processo específico. Por exemplo, suponha que uma interrupção seja acionada pela placa de rede. O kernel executa código para ler e analisar o pacote de rede; até agora nenhum processo está envolvido. O pacote pode ser rejeitado por meio de uma regra de firewall, caso em que nenhum processo pode reivindicar esse tempo de processamento. Se um processo acabar recebendo esse pacote, parte do tempo de recepção será colocado na guia do processo, mas não nos estágios iniciais.
Portanto, é possível ter tempo de CPU que não pertence a nenhum processo. No entanto, às vezes, esse tempo de CPU é indiretamente causado por algum processo. Por exemplo, se há um processo que envia pacotes para outra máquina e faz com que essa outra máquina responda, mas o firewall bloqueia os pacotes de resposta, o tempo gasto analisando e descartando os pacotes de resposta não será rastreado até o processo de envio; mas se o processo de envio parar, o que faz com que a máquina remota pare de responder, o kernel não perderá tempo rejeitando mais os pacotes. Claro que a rede é apenas um exemplo, existem muitas outras maneiras para o kernel fazer coisas que não podem ser rastreadas diretamente em um processo.
Você não deu informações suficientes para ter certeza de que é isso que está acontecendo (e pode ser difícil descobrir sem um depurador de kernel), mas essa é uma explicação plausível.