Multilevel Feedback -Warteschlange

Im Informatik, a Multilevel Feedback -Warteschlange ist ein Planung Algorithmus. Planungsalgorithmen sind so konzipiert, dass jederzeit ein Prozess läuft, um die zu behalten Zentrale Verarbeitungseinheit (CPU) beschäftigt.[1] Das Multilevel Feedback -Warteschlange Erweitert Standardalgorithmen mit den folgenden Entwurfsanforderungen:

  1. Trennende Prozesse in mehrere Bereitete Warteschlangen basierend auf ihrem Bedürfnis nach dem Prozessor.
  2. Verfahren Sie Prozesse mit kurzen CPU -Bursts.
  3. Vorlieben den Prozessen mit hoher Präferenz I/o Bursts. (I/A -gebundene Prozesse werden in der schlafen Warten Sie Warteschlange anderen Prozessen CPU -Zeit zu geben.)

Das Multilevel Feedback -Warteschlange wurde zuerst von entwickelt von Fernando J. Corbató (1962). Für diese Leistung die Verband für Rechenmaschinen ausgezeichnet Corbató The Turing Award.[2]

Prozessplanung

Während die Multilevel -Warteschlange Der Algorithmus hält die Prozesse dauerhaft den anfänglichen Warteschlangenzuordnungen, die Multilevel Feedback -Warteschlange Verschiebt Prozesse zwischen Warteschlangen.[3] Die Verschiebung hängt von den CPU Zeitscheiben.[4]

  • Wenn ein Prozess zu viel CPU-Zeit verwendet, wird er in eine Warteschlange mit niedrigerer Priorität verschoben.
  • Wenn ein Prozess I/O-gebunden oder ein interaktiver Prozess ist, wird er in eine Warteschlange mit höherer Priorität verschoben.
  • Wenn ein Prozess in einer Warteschlange mit niedriger Priorität zu lange wartet und verhungern, es wird sein alt zu einer Warteschlange mit höherer Priorität.

Algorithmus

Mehrere FIFO Warteschlangen werden verwendet und die Operation lautet wie folgt:

  1. Ein neuer Prozess wird am Ende (Schwanz) der obersten Ebene eingefügt FIFO Warteschlange.
  2. Irgendwann erreicht der Prozess den Kopf der Warteschlange und wird dem zugewiesen Zentralprozessor.
  3. Wenn der Vorgang innerhalb der Zeitstrahlung der angegebenen Warteschlange abgeschlossen ist, verlässt er das System.
  4. Wenn der Prozess freiwillig die Kontrolle der CPU aufgibt, verlässt er das Warteschlangennetzwerk und wenn der Prozess wieder fertig wird, wird er am Schwanz derselben Warteschlange eingefügt, die er zuvor aufgab.
  5. Wenn der Prozess die gesamte Quantenzeit verwendet, ist dies der Fall vorbezahlt und am Ende der nächsten Warteschlange auf unterer Ebene eingefügt. Diese nächste Warteschlange mit unterer Ebene hat ein Zeitquantum, das mehr als die der vorherigen Warteschlange mit höherer Ebene ist.
  6. Dieses Schema wird bis zum Abschluss des Vorgangs fortgesetzt oder es erreicht die Warteschlange auf Basisebene.
  • An der Basisebene zirkulieren die Prozesse in Runde Robin Mode, bis sie das System vervollständigen und verlassen. Prozesse in der Basisebene -Warteschlange können auch auf a geplant werden Wer zuerst kommt, mahlt zuerst Basis.[5]
  • Wenn ein Prozess für E/A blockiert ist, ist dies optional eine "geförderte" Stufe und am Ende der nächsten Warteschlange platziert. Auf diese Weise können I/A -gebundene Prozesse vom Scheduler bevorzugt und die Prozesse der Basisebene -Warteschlange "entkommen".

Für die Planung beginnt der Scheduler immer mit der Aufnahme von Prozessen vom Kopf der höchsten Warteschlange. Nur wenn die Warteschlange auf höchster Ebene leer geworden ist, nimmt der Scheduler einen Prozess aus der nächsten Warteschlange auf niedrigerer Ebene auf. Die gleiche Richtlinie wird implementiert, um in den nachfolgenden Warteschlangen der unteren Ebene aufzunehmen. Wenn ein Prozess in die Warteschlangen auf höherer Ebene eintritt, wird er einen Prozess in der Warteschlange auf niedrigerer Ebene vorbeugen.

Außerdem wird immer ein neuer Prozess am Schwanz der obersten Warteschlange eingefügt, mit der Annahme, dass er in kurzer Zeit abgeschlossen ist. Lange Prozesse sinken automatisch auf die Warteschlangen auf niedrigerer Ebene, basierend auf ihrem zeitlichen Verbrauch und Interaktivitätsniveau. In der mehrstufigen Feedback -Warteschlange erhält ein Prozess nur eine Chance, auf einer bestimmten Warteschlange zu vervollständigen, bevor er auf eine Warteschlange auf niedrigerer Ebene gedrückt wird.

Planungsparameter

Im Allgemeinen wird ein mehrstufiges Feedback -Warteschlangenplaner durch die folgenden Parameter definiert:[5]

  • Die Anzahl der Warteschlangen.
  • Der Planungsalgorithmus für jede Warteschlange, die sich von FIFO unterscheiden kann.
  • Die Methode, mit der festgestellt wird, wann ein Prozess zu einer Warteschlange mit höherer Priorität fördert werden soll.
  • Die Methode, die verwendet wird, um zu bestimmen, wann ein Prozess zu einer Warteschlange mit niedrigerer Priorität herabgestuft werden soll.
  • Die Methode, mit der festgestellt wird, welche Warteschlange ein Prozess eingeht, wenn dieser Prozess einen Dienst benötigt.

Externe Links

Siehe auch

Verweise

  1. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 131. ISBN 978-0-201-50480-4.
  2. ^ Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014). "Multi-Level-Feedback-Warteschlange". Betriebssysteme: drei einfache Stücke (PDF). Arpaci-Dusseau-Bücher.
  3. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 147. ISBN 978-0-201-50480-4.
  4. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 148. ISBN 978-0-201-50480-4.
  5. ^ a b Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2008). Betriebssystemkonzepte (8. Aufl.). Hoboken, N.J.: Wiley. p. 198. ISBN 978-0470128725.