A utilização do tempo de CPU "inativo" ainda desacelera outros programas

2

Antes, quando eu rodava um cliente Folding @ Home e agora, quando eu usava o BOINC, eles sempre usavam o tempo cpu "ocioso" (para aqueles que não estão familiarizados com esses programas, executam enormes cálculos científicos em seu computador, muito intensivos). No entanto, notei que no Windows e no Linux tentando fazer outras coisas (Firefox, programação no Netbeans, etc) todos esses programas são extremamente lentos.

Agora eu sei que você pode fazer coisas como executar apenas os clientes em 2 ou 3 núcleos (assumindo o sistema 4 core), mas estou mais interessado em saber porque esse tempo de CPU ocioso faria com que programas com prioridade normal diminuíssem a velocidade. Um processo com prioridade normal não seria executado primeiro antes do processo com prioridade ociosa, interrompendo-o se necessário? Por que é difícil para o sistema operacional gerenciar isso?

    
por TheLQ 10.09.2011 / 19:54

2 respostas

4

Esses programas não estão sendo executados durante o tempo de CPU "inativo", eles estão sendo executados como processos de baixa prioridade. Quando um sistema operacional está executando vários aplicativos, ele usa um agendador de processos para determinar quais processos obtêm acesso à CPU e com que frequência. Isso é chamado de multitarefa preventiva.

O planejador usa prioridades de processo para determinar quais processos obtêm acesso à CPU. Um processo de Prioridade Normal terá prioridade no planejador sobre um processo de prioridade Ocioso, mas a CPU ainda está sendo usada e há alguma sobrecarga na alternância de contexto entre threads e processos.

Como a CPU está funcionando a 100% o tempo todo, em vez de ter ciclos inativos disponíveis, não é difícil imaginar que alguns processos e interrupções possam demorar mais do que se a CPU estivesse inativa devido à sobrecarga de comutação de threads.

Alguns desses programas têm a opção de realmente interromper a execução do processo quando o computador está em uso. Eles fazem isso por meio da atividade detectada do mouse ou do teclado e se desativam por um determinado período de tempo até que o computador esteja ocioso novamente, em que ponto eles iniciarão o backup. Eu sugeriria olhar para essa opção.

Outra coisa a salientar é que, quando uma CPU está inativa, utiliza significativamente menos energia do que quando está em uso total. Então, enquanto seus programas estão usando ciclos de CPU "extras", eles podem facilmente dobrar o consumo de energia do seu PC, o que custa vários dólares por mês em eletricidade.

    
por 10.09.2011 / 20:35
1

Eu só tenho que adicionar algumas pequenas coisas à resposta de Chris Thompson, ele já disse a parte principal.

O consumo de energia e o efeito em sua conta de eletricidade podem ser realmente significativos, apenas para enfatizar isso um pouco mais. Razões pelas quais outros programas podem ser afetados pelos encadeamentos de baixa prioridade adicionais podem ser um trabalho adicional ao alterar processos (o cache e os registradores estão realmente em uso agora). E as operações de I / O podem realmente ter alguma influência também. A maior parte do trabalho desses programas é apenas intensiva da CPU e pode ser influenciada pela prioridade do processo, mas a E / S adicional é difícil de priorizar. E o uso adicional de memória também reduz o seu sistema. Se a sua memória estiver cheia, a troca pode reduzir significativamente o desempenho do sistema.

Para elaborar o consumo de energia: Encontrei números reais de consumo de energia para um Intel Core i7 Extreme Edition de cerca de 300 Watts sob carga pesada. Os processadores Intel Core mais recentes têm recursos de economia de energia muito bons, que permitem até mesmo que a CPU reduza a energia de diferentes núcleos se eles estiverem ociosos. Então eu suponho que você poderia usar 150 a 200 Watts a mais se você sempre tem esses programas em execução. (Números mais antigos que encontrei mostram 150+ Watts de diferença) Mas, como não encontrei números confiáveis, vamos supor que você use 100 Watts a mais (não se esqueça de que seu sistema de resfriamento também precisa funcionar mais se sua CPU gerar mais calor) - isto dá 100 * 24 * 30 = 72 kWh / mês ou 864 kWh / a se o seu PC estiver funcionando 24 horas por dia.

    
por 10.09.2011 / 20:46