Ich versuche zu verstehen, Multi-Level-Feedback-Warteschlangenplanung und ich stieß auf das folgende Beispiel von William Stallings Betriebssystem Internal and Principles Design (7. Ausgabe).
Ich habe diesen Prozess:
Und das Ergebnis im Buch ist das:
Ich glaube, ich mache die ersten Schritte richtig, aber wenn ich fertig werde E
CPU-Zeit ist mein nächster Prozess B
nicht D
wie im Buchbeispiel.
Ich kann nicht verstehen, wenn es welche gibt n
RQ
und nach jeder Zeit, die ein Prozess die CPU-Zeit bekommt, wird er zu einer niedrigeren Prioritätszeit degradiert RQ
oder wenn, zum Beispiel, verarbeiten A
ist in RQ1
und es gibt keinen Prozess am çower RQ
, der Prozess wird in diese Bereit-Warteschlange befördert (so mache ich das).
Kann mir jemand den Ablauf erklären, wie im obigen Beispiel nachher E
wird verarbeitet, D
bekommt CPU-Zeit und sie E
(und nicht B
) wird serviert?
Antworten:
1 für die Antwort № 1Der mehrstufige Rückmeldungsalgorithmus wählt immer den ersten Job der untersten Warteschlange aus (d. H. Die Warteschlange mit der höchsten Priorität), die nicht leer ist.
Wenn Job E RQ1 (Zeit 9) verlässt, befindet sich Job D in der Warteschlange RT2, aber Job B in RT3. Somit wird B ausgeführt. Bitte beachten Sie die modifizierte Abbildung, wobei die roten Zahlen die Warteschlange angeben, in der der Job ausgeführt wird.
Wie Sie sehen können, hat Job B RT2 bereits zum Zeitpunkt 9 verlassen (genauer gesagt verlässt er RT2 zum Zeitpunkt 6), während Job D gerade eingegeben wurde.