바이러스 스캐너가 멀티 코어가 아닌 듀얼 CPU로 여러 파일을 동시에 스캔 할 수 있습니까?


6
  • 안티 바이러스 : Microsoft 보안 기초
  • OS : Windows 7 x64

어쩌면 어리석은 질문 일지 모르지만 어떻게 든 다중 코어가 안티 바이러스 스캐너가 여러 코어를 여러 코어에 동시에 할당하여 여러 파일을 처리 할 수 ​​있다는 것을 의미합니다.

그것이 나왔던 것에 따라 나는 틀리다. 서로 다른 두 개의 폴더를 동시에 스캔하려고 시도하면 스캐너가 이미 사용 중이라는 메시지가 나타납니다. 그래서 나는 궁금하다. (+ :

진정한 듀얼 프로세서 보드에서는 바이러스 스캐너가 여러 파일을 동시에 스캔 할 수 있습니까, 아니면이 스캐너로 설계된 것입니까?


6
주의해야 할 중요한 점은 프로세서가 하드 드라이브보다 훨씬 빠른 속도이며, 이미 디스크에서 읽을 수있는 것보다 빠르게 파일을 스캔 할 수 있다는 것입니다. 이 경우 기존 하드 드라이브의 검색 시간이 매우 느리므로 여러 스캔을 동시에 실행하면 성능에 큰 해가 될 수 있습니다.
Phoshi

답변:


7

짧은 대답은 스캐너의 디자인 퀴크입니다.

여러 파일을 동시에 검사하는 기능은 바이러스 스캐너가 프로그래밍 된 방식과 더 관련이 있습니다. 원하는 것을하기 위해 소프트웨어는 병렬 읽기를 실행해야합니다. 나는 이것을하는 어떤 바이러스 스캐너도 모른다.


AV가 병렬 프로세스를 실행하지 않는 이유는 무엇입니까? 단지 유산인가, 아니면 디자인 제약이 있습니까?
Everyone

귀하의 의견을 읽은 후, 나는 가난한 단어를 사용한다는 것을 깨달았습니다. 나는 병렬 판독을 수행하는 바이러스 스캐너를 모른다. 나는 그것을 반영하기 위해 나의 대답을 편집했다. 나는 그들이 왜 병렬 읽기를하지 않는지 확신하지 못한다. AndrejaKo가 말했듯이 다른 물리적 하드 드라이브에서도 가능할 수 있습니다. 나는 결코 그것을 시도하지 않았다.
Chris Ting

8

모든 경우의 99 %의 소프트웨어 측면에서 멀티 코어 프로세서는 멀티 프로세서 시스템과 다를 바 없습니다.

경우에 따라 코어 간 통신이 멀티 프로세서 시스템보다 빠르기 때문에 멀티 코어 캠프에 이점이있을 수 있습니다.

반면에 엄청난 양의 RAM이 필요한 컴퓨터에서는 각 프로세서에 RAM을 할당하여 자체 작업을 제어하고 사용 가능한 RAM 양을 늘릴 수 있기 때문에 다중 프로세서 시스템이 더 좋을 수 있습니다.

다시 한번, 오늘날의 개인용 컴퓨터에서 사용되는 것과 같은 멀티 코어 프로세서는 동시에 여러 가지 작업을 수행 할 수 있기 때문에 다중 프로세서 시스템을 사용하는 이점이 거의 없습니다.

또한로드는 OS 커널에 의해 제어됨에 유의하십시오. 멀티 코어 또는 멀티 프로세서 시스템 (운영 체제와 응용 프로그램 관점에서 동일)에서 전체 시스템이 나머지 코어를 바이러스 검색 이외의 작업에 사용하는 것이 더 좋을지 결정할 수 있습니다.

다른 관점은 HDD입니다. 동시에 두 개의 파일을 물리적으로 읽을 수는 없으므로 중요한 제한 요소가 될 것입니다. 일부 AV 소프트웨어는 먼저 파일을 RAM에 복사 한 다음 병렬로 스캔하려고 시도하지만 일반적으로 제한 속도가 HDD 속도이기 때문에 성능이 향상되지 않으므로 RAM을 사용할 필요가 없습니다.

다른 하드 디스크의 파일을 병렬로 스캔하여 성능을 향상시킬 수 있습니다. Avast 6를 사용하여 두 개의 다른 HDD에있는 두 개의 디렉토리를 병렬로 스캔 할 때 아무런 문제가 없었습니다.


고맙습니다 (+ : 다중 프로세서 RAM 할당에 대한 메모는 제게 큰 도움이되었습니다. 여러 개의 HDD를 사용하는 것과 동일하게, 다른 HDD가 집으로 돌아올 때 사용해 보겠습니다.
Everyone

나는 HDD가 제한 요소라고 말하지 않을 것입니다. 바이러스 검사는 많은 CPU를 포함 할 수 있습니다. 바이러스 스캐너가 여러 스레드에서 검사 할 수있는 기술적 인 이유가 없습니다. 나는 그것이 단지 설계 결정 (예 : 취소 버튼이있는 하나의 중앙 UI가있을 수 있음) 또는 게으름인지 의심 스럽다.
Danny Tuppeny

또한 거의 동일한 두 개의 디스크가 동일한 디스크의 두 위치와 다를 것이라고 확신합니다. 누군가가 여러 스캔 프로세스를 지원하도록 바이러스 스캐너를 프로그래밍하고 단일 디스크에서 작동하지 않도록 만든 경우 모자를 먹을 것입니다 :-)
Danny Tuppeny

@ 대니 pp 피니 (Danny Tuppeny) 주요한 점은 하나의 디스크에 두 개의 장소에 동시에있을 수없는 읽기 헤드가 있다는 것입니다. 두 개의 다른 하드 디스크를 사용하면 실제로 두 개의 파일을 동시에 읽을 수 있습니다. 일부 컴퓨터 (광산과 같이 내가 언급 한)에서 바이러스 검사는 CPU 속도에 의해 제한되지 않을 수 있습니다. 이 경우 서로 다른 드라이브 (또는 다른 컨트롤러의 더 나은 다른 드라이브)를 사용하면 실제로 성능이 향상 될 수 있습니다.
AndrejaKo

@ 대니 Tuppeny 멀티 스레드에 관해서는, 내가 본 대부분의 바이러스 백신은 별도의 스레드에서 별도의 검사를 실행할 수 있습니다. 이 질문과 관련된 전체적인 논의는 스캔 속도가 CPU 속도가 아닌 HDD 속도에 의해 제한되므로 단일 스캔 프로세스에 다중 스레드를 추가하여 스캔 속도가 거의 향상되지 않을 것이므로 안티 바이러스는 데이터를 기다리는 데 대부분의 시간을 소비합니다 HDD에서 오는 것입니다.
AndrejaKo

2

"AV가 병렬 프로세스를 실행하지 않는 이유는 무엇입니까? 그냥 유산입니까 아니면 일부 설계 제약이 있습니까?"

멀티 쓰레드 코드를 작성하는 것은 싱글 쓰레드 코드를 작성하는 것보다 훨씬 더 어렵습니다. 따라서 큰 이점을 제공하지 않는 한 그것을 피하는 경향이 있습니다.

이 경우 바이러스 백신 검색 속도는 CPU 속도가 아니라 하드 드라이브 / 메모리 읽기 속도에 의해 병목 현상이 발생하므로 멀티 스레딩은 거의 이점이 없습니다.


두 개의 스레드가 완전히 분리되어있을 수 있다면 (같은 파일에서 두 개가 아닌 다른 파일을 스캔하는 경우와 마찬가지로) 스레드를 쓰는 것이 특히 어렵지는 않습니다. 반면에 어떤 혜택이 있든간에 ...
Phoshi

@Phoshi : 스레드는 어떻게 든 그들이 같은 파일에서 작업을 시작하지 못하도록 통신 할 수 있어야하며 둘 다 로그에 기록하고, 격리 된 파일 목록 등에 기록해야합니다. 캔트 완전히 분리되어있다.
BlueRaja - Danny Pflughoeft

물론 그들은 제어 스레드가 (코어 수의) 스레드 풀로 스캔 할 파일을 넘겨주고, 완료되면 해당 스레드가 제어 스레드에 신호를 보내도록 할 수 있습니다. 제어 스레드는 모든 로그 기록 자체를 처리 할 수 ​​있습니다. 실제 스캔 스레드는 서로에 대해 신경 쓸 필요가 없으며 파일을 스캔하여 안전 여부를 다시보고하면됩니다.
Phoshi

@Phoshi : 예, 어떻게 완료 될지 알고 있습니다. 그러나 요점은 단일 스레드를 갖는 것보다 분명히 더 복잡하며, 속도 이득이 없다면 왜 귀찮은가?
BlueRaja - Danny Pflughoeft

예, 스레드 스레딩에 큰 이점은 없지만 스레드 스레딩은 스레드 스레딩의 어려움보다는 이점이 없다는 점에서 더 쉽게 발생합니다.
Phoshi

1

AV 스캐너는 또한 바이러스 침입 외에도 시스템을 통해 수행하려는 작업에 최소한의 침입으로 다른 프로그램과 함께 작동하도록 설계되었습니다 (McAfee는이 메모를 얻지 못했음). 이러한 이유로 다른 코어를 사용할 수 있도록 두 개 이상의 코어를 동시에 사용하지 않도록 설계 될 수 있습니다.

유명 프로그래머가 캐싱 및 모든 프로세서 코어를 사용하는 전용 검사에 대해 "전능력"옵션을 제공하면 감염 가능성이있는 시스템에 대해 매우 철저하고 초고속 검사를 수행하는 것이 좋습니다.

이것에 대해 생각해 보니이 아이디어가 정말 마음에 듭니다. 물론 스캐너는 HDD보다 훨씬 빠를 수 있지만 온 디맨드 검사 상황에서 방대한 양의 메모리와 다중 스레드를 사용하면 비교적 짧은 시간 내에 시스템을 엄청나게 스캔 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.