Meu antivírus conseguirá varrer vários arquivos simultaneamente com a CPU dupla em vez de vários núcleos?

6
  • Antivírus: Microsoft Security Essentials
  • SO: Windows 7 x64

Questão tola, talvez, mas de alguma forma eu estava com a impressão de que vários núcleos significariam que o verificador de antivírus seria capaz de lidar com vários arquivos ao mesmo tempo alocando-os em núcleos diferentes.

Acontece que estou errado. A tentativa de digitalizar duas pastas diferentes simultaneamente exibe uma mensagem informando que o scanner já está ocupado. Então estou curioso (+:

Em uma placa dual-processor verdadeira, meu antivírus seria capaz de escanear vários arquivos ao mesmo tempo, ou isso é apenas uma peculiaridade do design com o scanner?

    
por Everyone 24.05.2011 / 13:18

4 respostas

7

A resposta curta é: uma peculiaridade do design do scanner.

A capacidade de digitalizar vários arquivos ao mesmo tempo tem mais a ver com o modo como seu antivírus está programado. Para fazer o que você quer, o software precisa ser executado para executar leituras paralelas. Não conheço nenhum antivírus que faça isso.

    
por 24.05.2011 / 13:23
8

Do lado do software em 99% de todos os casos, o processador multicore não é diferente do sistema multiprocessador.

Em alguns casos, pode haver uma vantagem no campo multicore porque a comunicação entre os núcleos é mais rápida do que nos sistemas multiprocessadores.

Por outro lado, em computadores que precisam de grandes quantidades de RAM, sistemas multiprocessadores podem ser melhores, pois você pode atribuir RAM a cada processador para controlar suas próprias tarefas e, assim, aumentar a quantidade de RAM disponível.

Mais uma vez, os processadores multicore, como os usados pelos computadores pessoais de hoje, são totalmente capazes ou executam várias tarefas ao mesmo tempo e não haveria quase nenhuma vantagem em ter um sistema multiprocessador.

Observe também que a carga é controlada pelo kernel do sistema operacional. Ele pode decidir que, em um sistema multicore ou multiprocessador (que é o mesmo do ponto de vista do sistema operacional e do aplicativo), será melhor para todo o sistema dedicar o restante dos núcleos a alguma tarefa diferente da varredura de vírus.

Outro ponto de vista é o HDD. Ele não pode ler fisicamente dois arquivos ao mesmo tempo, então será um grande fator limitante. Alguns softwares antivírus podem copiar arquivos para a RAM primeiro e tentar digitalizá-los em paralelo, mas não haveria melhora no desempenho, porque normalmente o fator limitante é a velocidade do disco rígido, portanto não há necessidade de ocupar a memória RAM.

Você sempre pode digitalizar arquivos paralelos em diferentes discos rígidos e melhorar o desempenho dessa maneira. Eu não tive problemas com a digitalização em dois diretórios paralelos em dois HDDs diferentes usando o Avast 6.

    
por 24.05.2011 / 13:32
2

"Alguma idéia do porque AV não executa processos paralelos? É apenas um legado, ou existe alguma restrição de projeto?"

Escrever código multi-thread é uma ordem de grandeza mais difícil do que escrever código single-threaded, então nós tendemos a evitá-lo a menos que ele forneça um grande benefício.

Nesse caso, a velocidade da varredura antivírus é influenciada pela velocidade das leituras do disco rígido / memória, não pela velocidade da CPU, portanto, a multithreading ofereceria muito pouco benefício.

    
por 24.05.2011 / 18:48
1
Os scanners AV também tendem a ser projetados para funcionar junto com outros programas com o mínimo de invasões (a McAfee nunca pareceu ter esse memorando) no que você está tentando fazer com o sistema, além de procurar por vírus. Por esse motivo, eles podem ser projetados para não utilizar mais de um núcleo simultaneamente, a fim de deixar os outros núcleos disponíveis para seu uso.

Pode ser uma boa idéia para programadores AV oferecer uma opção de "potência total" para varreduras dedicadas que empregam cache e todos os núcleos de processador para fazer varreduras super-completas e super-rápidas de sistemas possivelmente infectados.

Pensando nisso, eu realmente gosto dessa ideia. Claro que o scanner pode ser muito mais rápido do que o HDD, mas a utilização de grandes quantidades de memória e vários threads em uma situação de varredura por demanda pode permitir uma varredura incrivelmente intensa do sistema em períodos de tempo relativamente curtos.

    
por 24.05.2011 / 16:18