Kann mein Virenscanner mehrere Dateien gleichzeitig mit Dual-CPU statt mit mehreren Kernen scannen?


6
  • Antivirus: Microsoft Security Essentials
  • Betriebssystem: Windows 7 x64

Dumme Frage vielleicht, aber irgendwie hatte ich den Eindruck, dass mehrere Kerne bedeuten würden, dass der Antiviren-Scanner mehrere Dateien gleichzeitig bearbeiten könnte, indem er sie verschiedenen Kernen zuordnet.

Wie sich herausstellt, irre ich mich. Beim Versuch, zwei unterschiedliche Ordner gleichzeitig zu scannen, wird eine Meldung angezeigt, dass der Scanner bereits belegt ist. Also bin ich neugierig (+:

Kann mein Virenscanner auf einer echten Dual-Prozessor-Platine mehrere Dateien gleichzeitig scannen, oder handelt es sich dabei nur um eine Designfehler mit dem Scanner?


6
Es ist wichtig zu wissen, dass Ihr Prozessor um Größenordnungen schneller ist als Ihre Festplatte, und es ist durchaus möglich, dass Sie Dateien bereits schneller scannen können, als Sie von der Festplatte lesen können. In diesem Fall kann die gleichzeitige Ausführung mehrerer Scans die Leistung stark beeinträchtigen, da die Suchzeit auf einer herkömmlichen Festplatte unglaublich langsam ist.
Phoshi

Antworten:


7

Die kurze Antwort lautet: eine Design-Sonderheit des Scanners.

Die Möglichkeit, mehrere Dateien gleichzeitig zu scannen, hat mehr mit der Programmierung Ihres Virenscanners zu tun. Um das zu tun, was Sie möchten, muss die Software parallel ausgeführt werden. Ich kenne keinen Virenscanner, der dies tut.


Irgendeine Idee, warum AV keine parallelen Prozesse ausführt? Ist es nur ein Vermächtnis, oder gibt es einige Designeinschränkungen?
Everyone

Nachdem ich Ihren Kommentar gelesen hatte, wurde mir klar, dass ich eine schlechte Wortwahl verwendet hatte. Ich kenne keinen Virenscanner, der parallel liest. Ich habe meine Antwort bearbeitet, um das zu reflektieren. Ich bin nicht sicher, warum sie keine parallelen Lesevorgänge durchführen. Wie AndrejaKo sagt, könnte es auf verschiedenen physischen Festplatten möglich sein. Ich habe das noch nie probiert.
Chris Ting

8

Auf der Softwareseite unterscheidet sich der Multicore-Prozessor in 99% aller Fälle nicht vom Multiprozessorsystem.

In einigen Fällen könnte es im Multicore-Camp einen Vorteil geben, da die Kommunikation zwischen Cores schneller ist als bei Multiprozessorsystemen.

Auf Computern dagegen, die sehr viel RAM benötigen, sind Multiprozessorsysteme möglicherweise besser, da Sie jedem Prozessor RAM zuweisen können, um ihn für seine eigenen Aufgaben zu steuern, und auf diese Weise den verfügbaren RAM erhöhen.

Wiederum sind Multicore-Prozessoren, wie sie heutzutage von Personalcomputern verwendet werden, voll funktionsfähig oder führen mehrere Aufgaben gleichzeitig aus, und es wäre fast kein Vorteil, ein Multiprozessorsystem zu haben.

Beachten Sie auch, dass die Last vom Betriebssystemkern gesteuert wird. Es kann sich entscheiden, dass es in einem Multicore- oder Multiprozessorsystem (das aus Sicht des Betriebssystems und der Anwendung gleich ist) für das gesamte System besser ist, den Rest der Kerne anderen Aufgaben als der Virenprüfung zu widmen.

Ein anderer Gesichtspunkt ist HDD. Es kann nicht zwei Dateien gleichzeitig physisch lesen, daher ist dies ein wesentlicher einschränkender Faktor. Manche AV-Software kopiert Dateien zuerst in den RAM-Speicher und versucht, diese parallel zu scannen. Es gibt jedoch keine Leistungsverbesserung, da die Festplattengeschwindigkeit in der Regel der begrenzende Faktor ist. Daher ist kein RAM erforderlich.

Sie können immer parallel Dateien auf verschiedenen Festplatten scannen und auf diese Weise die Leistung verbessern. Ich hatte keine Probleme beim parallelen Scannen von zwei Verzeichnissen auf zwei verschiedenen Festplatten mit Avast 6.


Vielen Dank (+: Die Hinweise zur Multi-Prozessor-RAM-Zuweisung waren für mich ein Augenöffner. Gleiches gilt für die Verwendung mehrerer Festplatten. Ich werde es ausprobieren, wenn meine andere Festplatte nach Hause kommt
Everyone

Ich würde nicht sagen, dass die Festplatte der limitierende Faktor ist - das Überprüfen auf Viren kann viel CPU-Aufwand mit sich bringen. Ich vermute, es ist nur eine Designentscheidung (z. B. weil es eine zentrale Benutzeroberfläche mit Abbruchtaste gibt) oder Faulheit.
Danny Tuppeny

Ich bin fast sicher, dass zwei verschiedene Festplatten sich nicht von zwei Speicherorten auf derselben Festplatte unterscheiden werden. Wenn jemand seinen Virenscanner so programmiert hat, dass er mehrere Scanvorgänge unterstützt und nicht auf einer einzigen Festplatte funktioniert, fresse ich meinen Hut :-)
Danny Tuppeny

@Danny Tuppeny Die Hauptsache ist, dass Sie auf einer einzigen Platte einen Lesekopf haben, der nicht an zwei Stellen gleichzeitig sein kann. Mit TWO DIFFERENT-Festplatten können Sie tatsächlich zwei Dateien gleichzeitig lesen. Auf einigen Computern (wie z. B. meinen, auf die ich mich bezogen habe) ist die Virenprüfung möglicherweise nicht auf die CPU-Geschwindigkeit beschränkt. In solchen Fällen können unterschiedliche Laufwerke (oder besser unterschiedliche Laufwerke auf verschiedenen Controllern) tatsächlich zu Leistungsverbesserungen führen.
AndrejaKo

@Danny Tuppeny Wie beim Multithreading können die meisten Antivirenprogramme, die ich gesehen habe, separate Scans auf separaten Threads ausführen. Die ganze Diskussion, die sich auf diese Frage bezog, ist, dass die Scangeschwindigkeit durch das Hinzufügen von Multithreading zu einem einzelnen Scanvorgang nur geringfügig verbessert werden kann, da das Scannen durch die Festplattengeschwindigkeit und nicht durch die CPU-Geschwindigkeit begrenzt wird. Daher muss der Virenschutz die meiste Zeit auf Daten warten von der Festplatte kommen.
AndrejaKo

2

"Gibt es eine Idee, warum AV keine parallelen Prozesse ausführen kann?

Das Schreiben von Multithreadcode ist eine Größenordnung schwieriger als das Schreiben von Einzelthreadcode. Daher neigen wir dazu, dies zu vermeiden, es sei denn, es bietet einen großen Vorteil.

In diesem Fall ist die Geschwindigkeit des Antiviren-Scans durch die Geschwindigkeit der Festplatten- / Speicherlesevorgänge und nicht durch die Geschwindigkeit der CPU eingeschränkt, sodass Multithreading nur einen geringen Vorteil bietet.


Wenn Ihre zwei Threads vollständig getrennt bleiben können (wie beim Scannen verschiedener Dateien, anstatt zwei an derselben Datei zu arbeiten), wäre es nicht besonders schwer, sie zu fädeln. Ob es Vorteile gibt, auf der anderen Seite ...
Phoshi

@Phoshi: Die Threads müssen irgendwie kommunizieren können, um sicherzustellen, dass sie nicht an derselben Datei arbeiten, und sie müssen beide in das Protokoll, in die Liste der unter Quarantäne gestellten Dateien usw. schreiben kippen völlig getrennt bleiben.
BlueRaja - Danny Pflughoeft

Sicher können sie, dass ein Kontroll-Thread Dateien austeilt, die in einen Thread-Pool von (Anzahl von Kernen) Threads gescannt werden sollen, und diese Threads den Kontroll-Thread signalisieren, wenn sie fertig sind. Der Steuer-Thread kann das gesamte Protokollschreiben selbst übernehmen. Die eigentlichen Scan-Threads brauchen sich überhaupt nicht darum zu kümmern, sie müssen nur eine Datei scannen und zurückmelden, ob sie sicher ist.
Phoshi

@Phoshi: Ja, ich weiß, wie es gemacht werden würde. Der Punkt ist jedoch, dass er eindeutig komplexer ist als ein einzelner Thread. Wenn es keinen Geschwindigkeitsvorteil gibt, warum dann die Mühe machen?
BlueRaja - Danny Pflughoeft

Ja, ich sehe keinen großen Vorteil, wenn man es einfädelt, aber wenn man es nicht einfädelt, ist das leichter darauf zurückzuführen, dass es keinen Nutzen gibt, und nicht die Schwierigkeit, es einzubringen.
Phoshi

1

AV-Scanner neigen auch dazu, zusammen mit anderen Programmen mit minimalem Eingriff zu arbeiten (McAfee schien dieses Memo jedoch nie zu verstehen), was Sie mit dem System neben dem Scannen auf Viren versuchen. Aus diesem Grund können sie so ausgelegt werden, dass nicht mehr als ein Kern gleichzeitig verwendet wird, um die anderen Kerne für Ihre Verwendung verfügbar zu machen.

Es ist möglicherweise eine gute Idee für AV-Programmierer, eine Option "Full Power" für dedizierte Scans anzubieten, bei denen Zwischenspeicherung und alle Prozessorkerne verwendet werden, um äußerst gründliche Scans von möglicherweise infizierten Systemen mit sehr hoher Geschwindigkeit durchzuführen.

Wenn ich darüber nachdenke, mag ich diese Idee sehr. Sicherlich könnte der Scanner viel schneller als die Festplatte sein, aber bei einer On-Demand-Scansituation kann der Einsatz riesiger Arbeitsspeicher und mehrerer Threads ein unglaublich intensives Scannen des Systems in relativ kurzen Zeiträumen ermöglichen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.