6
  • Антивирус: Microsoft Security Essentials
  • ОС: Windows 7 x64

Возможно, это глупый вопрос, но почему-то у меня сложилось впечатление, что наличие нескольких ядер будет означать, что антивирусный сканер сможет обрабатывать несколько файлов одновременно, выделяя их различным ядрам.

Как оказалось, я не прав. Попытка одновременного сканирования двух разных папок выдает сообщение о том, что сканер уже занят. Так что мне любопытно (+:

На истинной двухпроцессорной плате мой антивирусный сканер сможет одновременно сканировать несколько файлов, или это просто особенность конструкции со сканером?

4 ответа4

8

Со стороны программного обеспечения в 99% всех случаев многоядерный процессор ничем не отличается от многопроцессорной системы.

В некоторых случаях может быть преимущество в многоядерном лагере, потому что связь между ядрами происходит быстрее, чем в многопроцессорных системах.

С другой стороны, в компьютерах, которым требуется огромное количество оперативной памяти, многопроцессорные системы могут быть лучше, поскольку вы можете назначить оперативную память каждому процессору для управления его собственными задачами и, таким образом, увеличить объем доступной оперативной памяти.

Еще раз, многоядерные процессоры, такие как те, которые используются на современных персональных компьютерах, полностью способны или выполняют несколько задач одновременно, и не было бы почти никакого преимущества от наличия многопроцессорной системы.

Также обратите внимание, что загрузка контролируется ядром ОС. Может быть решено, что в многоядерной или многопроцессорной системе (которые одинаковы с точки зрения ОС и приложений) для всей системы будет лучше выделить остальные ядра для какой-либо задачи, отличной от сканирования на вирусы.

Другая точка зрения - это HDD. Он не может физически читать два файла одновременно, поэтому это будет основным ограничивающим фактором. Некоторые AV-программы могут сначала копировать файлы в ОЗУ, и они пытаются сканировать их параллельно, но улучшения производительности не будет, поскольку обычно ограничивающим фактором является скорость жесткого диска, поэтому нет необходимости занимать ОЗУ.

Вы всегда можете сканировать параллельные файлы на разных жестких дисках и таким образом повысить производительность. У меня не было проблем с параллельным сканированием двух каталогов на двух разных жестких дисках с помощью Avast 6.

7

Краткий ответ: конструктивная особенность сканера.

Возможность одновременного сканирования нескольких файлов больше связана с тем, как запрограммирован ваш антивирусный сканер. Чтобы сделать то, что вы хотите, программное обеспечение должно быть выполнено для параллельного чтения. Я не знаю ни одного антивирусного сканера, который бы это делал.

2

"Есть идеи, почему AV не запускает параллельные процессы? Это просто наследие или есть какое-то ограничение дизайна?"

Написание многопоточного кода на порядок сложнее, чем написание однопоточного кода, поэтому мы склонны избегать его, если это не дает больших преимуществ.

В этом случае скорость антивирусной проверки ограничена скоростью чтения с жесткого диска / памяти, а не скоростью процессора, поэтому многопоточность принесет очень мало пользы.

1

AV-сканеры также, как правило, предназначены для совместной работы с другими программами с минимальным вмешательством (хотя, похоже, McAfee никогда не получал эту записку) в том, что вы пытаетесь сделать с системой, помимо сканирования на вирусы. По этой причине они могут быть спроектированы так, чтобы не использовать более одного ядра одновременно, чтобы другие ядра были доступны для вашего использования.

Для AV-программистов может быть хорошей идеей предложить вариант "полной мощности" для выделенных сканирований, в которых используется кэширование и все ядра процессора для выполнения сверхскоростного, сверхскоростного сканирования, возможно, зараженных систем.

Размышляя об этом, мне очень нравится эта идея. Конечно, сканер может работать намного быстрее, чем жесткий диск, но использование огромных объемов памяти и нескольких потоков в ситуации сканирования по требованию может позволить невероятно интенсивное сканирование системы за относительно короткие промежутки времени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .