ばかげた質問かもしれませんが、どういうわけか、複数のコアは、アンチウイルススキャナーが複数のファイルを異なるコアに割り当てることで同時に処理できることを意味するという印象を受けました。
結局のところ、私は間違っています。 2つの異なるフォルダーを同時にスキャンしようとすると、スキャナーが既に使用されているというメッセージが表示されます。だから私は興味があります(+:
真のデュアルプロセッサボードでは、ウイルススキャナーは複数のファイルを同時にスキャンできますか、それともスキャナーの設計上の癖ですか?
簡単な答えは次のとおりです。スキャナーの設計上の癖。
複数のファイルを同時にスキャンする機能は、ウイルススキャナーのプログラム方法と関係があります。あなたが望むことをするために、ソフトウェアは並列読み取りを実行するように作られなければなりません。私はこれを行うウイルススキャナーを知りません。
すべてのケースの99%でソフトウェア側から見ると、マルチコアプロセッサはマルチプロセッサシステムと同じです。
場合によっては、コア間の通信がマルチプロセッサシステムの場合よりも高速であるため、マルチコアキャンプに利点がある可能性があります。
一方、大量のRAMを必要とするコンピューターでは、マルチプロセッサシステムの方が優れている場合があります。これは、各プロセッサにRAMを割り当てて、独自のタスクを制御し、使用可能な量を増やすことができるためです。羊。
繰り返しになりますが、今日のパーソナルコンピュータで使用されているようなマルチコアプロセッサは、完全に機能するか、同時に複数のタスクを実行するため、マルチプロセッサシステムを使用する利点はほとんどありません。
また、負荷はOSカーネルによって制御されることに注意してください。マルチコアまたはマルチプロセッサシステム(OSとアプリケーションの観点からは同じ)では、システム全体が残りのコアをウイルススキャン以外のタスク専用にする方がよいと判断する場合があります。
もう1つの視点はHDDです。 2つのファイルを同時に物理的に読み取ることはできないため、これが主要な制限要因になります。一部のAVソフトウェアは、最初にファイルをRAMにコピーし、それらを並行してスキャンしようとしますが、通常、制限要因はHDDの速度であるため、パフォーマンスの向上はありません。そのため、使用する必要はありません。羊。
常に異なるハードディスク上の並列ファイルをスキャンして、その方法でパフォーマンスを向上させることができます。アバスト6を使用して2つの異なるHDD上の2つのディレクトリを並行してスキャンすることに問題はありませんでした。
"AVが並列プロセスを実行しない理由はありますか?それは単なるレガシーですか、それとも設計上の制約がありますか?"
マルチスレッドコードの記述は、シングルスレッドコードの記述よりも桁違いに難しいため、大きなメリットがない限り、回避する傾向があります。
この場合、アンチウイルススキャンの速度は、CPUの速度ではなく、ハードドライブ/メモリの読み取り速度によってボトルネックになるため、マルチスレッドによるメリットはほとんどありません。
AVスキャナーは、ウイルスのスキャン以外にシステムで実行しようとしていることに最小限の侵入で他のプログラムと一緒に動作するように設計されている傾向があります(ただし、McAfeeはこのメモを取得していないようです)。このため、他のコアを使用できるようにするために、複数のコアを同時に使用しないように設計されている場合があります。
AVプログラマーにとって、感染した可能性のあるシステムの超徹底的、超高速スキャンを実行するためにキャッシングとすべてのプロセッサーコアを使用する専用スキャンに「フルパワー」オプションを提供することは良い考えかもしれません。
これを考えると、私はこのアイデアが本当に好きです。確かに、スキャナーはHDDよりもはるかに高速である可能性がありますが、オンデマンドスキャンの状況で大量のメモリと複数のスレッドを利用すると、比較的短時間でシステムの非常に強力なスキャンが可能になります。