Planungsalgorithmus in Windows XP

3925

Hat jemand jetzt welche Scheduling-Algorithmen in Windows XP implementiert? Gibt es eine Möglichkeit, den ULE-Algorithmus zu installieren / zu verwenden? Ich denke nicht.

Vielen Dank.

2

1 Antwort auf die Frage

2
Bibhas

AFAIK Sie können verschiedene Zeitplanungsalgorithmen von Fenstern nicht ändern (dh installieren). Es wird implementiert, wenn es entworfen ist. Und ich habe auch irgendwo gelesen, dass Windows NT-basierte Betriebssysteme eine mehrstufige Feedback-Warteschlange als Planungsalgo verwenden.

Eine Mehrebenen-Rückmeldungswarteschlange ist ein Planungsalgorithmus. Es ist beabsichtigt, die folgenden Designanforderungen für Multimode-Systeme zu erfüllen:

  1. Bevorzugen Sie kurze Jobs.
  2. Bevorzugen Sie E / A-gebundene Prozesse.
  3. Stellen Sie schnell die Art eines Prozesses fest und planen Sie den Prozess entsprechend ein.

Mehrere FIFO-Warteschlangen werden verwendet und der Vorgang ist wie folgt:

  1. Ein neuer Prozess wird am Ende der FIFO-Warteschlange der obersten Ebene positioniert.
  2. Irgendwann erreicht der Prozess den Kopf der Warteschlange und wird der CPU zugewiesen.
  3. Wenn der Vorgang abgeschlossen ist, verlässt er das System.
  4. Wenn der Prozess die Kontrolle freiwillig aufgibt, verlässt er das Warteschlangennetz und wenn der Prozess wieder bereit ist, tritt er auf derselben Warteschlangenebene in das System ein.
  5. Wenn der Prozess die gesamte Quantenzeit verwendet, wird er vorab entleert und am Ende der nächst niedrigeren Warteschlange positioniert.
  6. Dies wird solange fortgesetzt, bis der Prozess abgeschlossen ist oder die Warteschlange der Basisebene erreicht hat.

    • In der Warteschlange auf der Basisebene zirkulieren die Prozesse im Round-Robin-Verfahren, bis sie abgeschlossen sind und das System verlassen.
    • Wenn ein Prozess für E / A blockiert, wird er optional um eine Ebene "heraufgestuft" und am Ende der nächsthöheren Warteschlange platziert. Dadurch können I / O-gebundene Prozesse vom Scheduler bevorzugt werden, und Prozesse können die Warteschlange der Basisebene "umgehen".

In der Mehrebenen-Rückmeldungswarteschlange wird einem Prozess nur eine Chance gegeben, ihn auf einer bestimmten Warteschlangenebene abzuschließen, bevor er in eine Warteschlange niedrigerer Ebene heruntergefahren wird.

Das ist nicht wirklich eine korrekte Beschreibung des Schedulers der Windows NT-Familie. Ändern Sie in Schritt 1 "FIFO-Warteschlange der obersten Ebene" in "Warteschlange für ihre aktuelle Priorität". Ändern Sie für Schritt 6 "Warteschlange der Basisebene" in "Warteschlange für die Basispriorität" (die normalerweise nicht die niedrigste Warteschlange des Systems ist). Außerdem sind Promotions für die E / A-Vervollständigung in Abhängigkeit von der E / A-Vorrichtung in unterschiedlicher Anzahl vorhanden. und ändern Sie "process" durchgehend in "thread". Es gibt mehr; siehe das _Windows Internals_ Buch. Jamie Hanrahan vor 9 Jahren 0
Wenn ich XP verwendete, hatte es das Verhalten eines Round-Robin (ohne Mehrebenen-Feedback-Warteschlange): Eine einzelne CPU-intensive Aufgabe würde das System stauen. Ich glaube, ich habe irgendwo gelesen, dass sie mit dem SMP eine Multi-Level-Feedback-Warteschlange hinzugefügt haben und zwei unterschiedliche Kernel hatten, je nachdem, ob Sie Multi-Core hatten oder nicht. Dies würde erklären, warum Microsoft uns gesagt hat, dass wir ein Duell-Kernsystem benötigen, um Multitasking zu verbessern (es war notwendig, um die grundlegende Leistung zu erlangen, die wir in Unix gewohnt waren). Ich denke, dieser bessere Scheduler ist jetzt auch für Single Core aktiviert. ctrl-alt-delor vor 7 Jahren 0
@richard Nein, seit NT 3.1 gibt es mehrere Ebenen (32 Prioritätsstufen). Jamie Hanrahan vor 6 Jahren 0
Die Leistung ist also immer noch furchtbar, wenn ein Prozess versucht, die CPU (von einem CPU-Kern oder einem Kern pro Kern) zu hocken. ctrl-alt-delor vor 6 Jahren 0