Frage

Von dem, was ich in der Vergangenheit gelesen haben, werden Sie aufgefordert, nicht die Priorität Ihrer Windows-Anwendungen programmatisch zu ändern, und wenn Sie tun, Sie sollten sie nie ‚Realtime‘ ändern.

Was bedeutet die 'Realtime' Prozesspriorität Einstellung zu tun, im Vergleich zu 'High' und 'Above Normal'? “

War es hilfreich?

Lösung

Ein Echtzeit-Priorität Thread kann niemals durch Timer-Interrupts vorgegriffen und läuft mit einer höheren Priorität als alle anderen Thread in dem System. Als eine solche CPU Echtzeit-Priorität Fadenheftung ruinieren kann total eine Maschine.

Erstellen von Echtzeit-Priorität Threads erfordert ein Privileg ( SeIncreaseBasePriorityPrivilege ), so kann er nur durch administrative Benutzer durchgeführt werden.

Für Vista und darüber hinaus eine Option für Anwendungen, die erfordern, dass sie in Echtzeit Prioritäten ausgeführt ist, die Multimedia Class Scheduler Service (MMCSS) und lassen sie es Ihre Themen Priorität verwalten. Die MMCSS Ihre Anwendung verhindern, indem zu viel CPU-Zeit, so dass Sie die Maschine kümmern müssen nicht über Betankung.

Andere Tipps

Einfach gesagt, ist die „Echtzeit“ Prioritätsklasse höher ist als „High“ Prioritätsklasse. Ich glaube nicht, dass es viel mehr als das. Ach ja - Sie haben die SeIncreaseBasePriorityPrivilege haben einen Faden in die Echtzeit-Klasse setzen

.

Windows wird manchmal die Priorität eines Threads steigert aus verschiedenen Gründen, aber es wird die Priorität eines Threads in einer anderen Prioritätsklasse nicht steigern. Es wird auch die Priorität der Threads in der Echtzeit-Prioritätsklasse nicht steigern. So ein Thread mit hohen Priorität wird keine automatische temporäre Erhöhung in die Prioritätsklasse Echtzeit erhalten.

Russinovich „Inside Windows“ Kapitel darüber, wie Windows-Priorität behandelt ist eine großartige Ressource für das Lernen, wie das funktioniert:

Beachten Sie, dass es absolut kein Problem mit einem Gewinde auf einem normalen Windows-System eine Echtzeit-Priorität - sie sind nicht unbedingt für spezielle Prozesse auf dedicatd Maschinen ausgeführt werden. Ich stelle mir vor, dass Multimedia-Treiber und / oder Prozesse Threads mit einer Echtzeit-Priorität benötigen. Jedoch ist ein solcher Thread sollte nicht viel CPU benötigen -. Sollte es die meiste Zeit, um für den normalen Systemereignisse blockieren Verarbeitung zu erhalten

Es wäre die höchste verfügbare Priorität Einstellung sein, und würde in der Regel nur auf Feld verwendet werden, die dieses spezifische Programm zum Laufen gewidmet war. Es ist tatsächlich so hoch, dass es Hunger der Tastatur und der Maus Fäden in dem Maße dazu führen könnten, dass sie nicht mehr reagiert.

Also im Grunde, wenn Sie fragen müssen, verwenden Sie es nicht:)

Echtzeit ist die höchste Priorität Klasse zur Verfügung zu einem Prozess. Daher ist es unterscheidet sich von ‚Hoch‘, dass es einen Schritt größer ist, und ‚Above Normal‘, dass es zwei Stufen höher.

In ähnliche Weise in Echtzeit ist auch eine Thread Prioritätsstufe.

Der Prozess Priorität Klasse hebt oder senkt alle wirksamen Thread-Prioritäten im Prozess und werden daher als die ‚Basispriorität‘.

So hat ein Prozess ein:

  1. Basisprozessprioritätsklasse .
  2. Individuelle Thread-Prioritäten , Offsets der Basisprioritätsklasse.

Da in Echtzeit soll für Anwendungen reserviert werden, die absolut vorgreifen müssen andere laufende Prozesse, gibt es eine spezielle Sicherheitsberechtigung gegen planlos Gebrauch zu schützen. Dies wird durch die Sicherheitspolitik definiert.

In NT6 + (Vista +), Nutzung des Vista Multimedia Class Scheduler ist der richtige Weg, den Echtzeitbetrieb in zu erreichen, was ist nicht ein Echtzeit-Betriebssystem. Es funktioniert, zum größten Teil, wenn auch nicht perfekt ist, da das Betriebssystem nicht für den Echtzeitbetrieb ausgelegt ist.

Microsoft hält diese Priorität sehr gefährlich, zu Recht. Keine Anwendung soll es außer in sehr speziellen Umständen verwendet werden, und selbst dann versuchen, seine Verwendung zu vorübergehendem Bedarf zu begrenzen.

Nachdem Windows lernt verwendet ein Programm höher als normale Priorität es scheint, wie es die Priorität auf dem Prozess begrenzt.

Zur Einstellung der Priorität von IDLE zu ECHTZEIT NICHT die CPU-Auslastung ändern.

fand ich auf meinem Multi-Prozessor AMD CPU, wenn ich Drop eine der CPUs wie die letzten ot die CPU-Auslastung wird MAX OUT und die letzte CPU im Leerlauf bleibt. Die Prozessorgeschwindigkeit erhöht sich auf 75% auf meinem Quad AMD.

Verwenden Sie die Task-Manager-> wählen prozess-> Rechtsklick auf dem prozess-> Select-> Set Affinity Klicken Sie alle, aber die letzte Prozessor. Die CPU-Auslastung auf den MAX auf den verbleibenden Prozessoren erhöhen und Framezählwerte, wenn die Verarbeitung Video erhöhen.

Es ist im Grunde höher / größer in alles andere. Eine Tastatur ist weniger wichtig als der Echtzeit-Prozess. Dies bedeutet, dass der Prozess berücksichtigt schneller als Tastatur genommen werden und wenn sie nicht damit umgehen kann, dann die Tastatur verlangsamt.

Wie alle anderen Antworten vor Echtzeit gibt, das Programm die höchste Prioritätsklasse. Nichts wird verarbeitet, bis das Programm bearbeitet wurde.
Auf meinem Pentium 4 Maschine stelle ich Minecraft viel Echtzeit, da es die Leistung des Spiels eine Menge erhöht, und das System scheint völlig stabil. so in Echtzeit ist nicht so schlecht, wie es scheint, nur wenn Sie ein Multi-Core eines Programms Affinität zu einem bestimmten Kern oder Kern gesetzt (nur nicht alle von ihnen, nur damit alles anderes der Lage sein, im Fall läuft die Echtzeit Set Programme werden aufgelegt) und die Priorität auf Echtzeit eingestellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top