Número de processos em execução exibidos no topo

6

O número máximo usual que vi no campo "em execução" exibido em top (1) é o número de CPUs lógicas instaladas no sistema. No entanto, observei que no Ubuntu 10.04 (não verificado em outras versões), às vezes top (1) mostra mais processos em execução do que o limite que mencionei.

O que pode estar causando a exibição de, por exemplo, dois processos em execução em um único sistema central?

    
por efutch 20.08.2010 / 18:36

2 respostas

5

O campo "em execução" na parte superior não mostra o número de tarefas que estão sendo executadas simultaneamente, ele mostra o número de tarefas que são executáveis , ou seja, o número de tarefas que estão competindo para acesso à CPU.

Se top pudesse obter todas as informações do sistema em um único intervalo de tempo, o campo "em execução" seria exatamente o número de tarefas cujo status ( S column) mostra R (novamente, R aqui é frequentemente dito para dizer "correndo", mas isso realmente significa "executável" como acima). Na prática, o número pode não coincidir porque o top obtém informações para cada tarefa uma a uma e algumas das tarefas executáveis podem ter adormecido ou vice-versa no momento em que termina. (Algumas implementações de top podem apenas contar tarefas com o status R para computar o campo “running”; então o número será exato.)

Observe que sempre há uma tarefa executável quando o top reúne suas informações, ou seja, o próprio topo. Se você vir uma única tarefa executável, significa que nenhum outro processo está competindo pelo tempo de CPU.

    
por 20.08.2010 / 19:00
2

Hyperthreading, talvez.

Observe que a página man do top diz:

Tasks shown as running should be more properly thought of as 'ready to run' -- their task_struct is simply represented on the Linux run-queue. Even without a true SMP machine, you may see numerous tasks in this state depending on top's delay interval and nice value.

    
por 20.08.2010 / 18:53