Implementierte gemeinsame Planungsalgorithmen, die auf PCs, Servern und anderen Arten interaktiver Systeme verwendet werden
Jedem Prozess wird ein Zeitintervall zugewiesen, das als "Quantum" bezeichnet wird und in dem er laufen darf. Nach Abschluss des Quantenprozesses blockiert und bis zum Ende der Warteschlange gestellt. Scheduler geht implizit davon aus, dass der gesamte Prozess gleichermaßen wichtig ist. Das interessante Problem mit Round Robin ist die Länge des Quanten. Das Einstellen des Quanten zu kurz führt zu viele Prozessschalter und senkt die CPU -Effizität. Wenn Sie jedoch zu lange festlegen, kann es zu einer schlechten Reaktion auf kurze interaktive Anfragen führen.
Jedem Prozess wird eine Priorität zugewiesen, und der laufbare RPocess mit der höchsten Priorität darf ausgeführt werden. Um zu verhindern, dass hohe Prioritätsprozesse unendlich ausgeführt werden, kann der Scheduler die Priorität des aktuell laufenden Vorgangs bei jedem Tick-Tick oder einem anderen Zeitintervall verringern. Wenn diese Aktion dazu führt, dass ihre Priorität unter die des nächsthöheren Prozesses sinkt, tritt ein Prozessschalter auf. Prioritäten können zugewiesen werden, um statisch oder dynamisch zu verarbeiten. Es ist oft zweckmäßig, Prozesse in Priorität zu gruppieren und die Prioritätsplanung zwischen den Klassen zu verwenden. Die Round-Robin-Planung innerhalb der Klassen Prioritätsplanung hat jedoch ein Problem bei der unbestimmten Blockierung oder Hunger, bei denen die Aufgabe mit geringer Priorität für immer warten kann. Eine häufige Lösung für dieses Problem ist das Altern, bei dem die Prioritäten von Arbeitsplätzen umso länger warten. Im Rahmen dieses Schemas wird ein Job mit niedriger Priorität letztendlich seine Priorität nach der Zeit hoch genug erhöhen.
Wenn Prozesse kategorisiert werden können, können mehrere separate Warteschlangen festgelegt werden, wobei jeder den Zeitplanalgorithmus implementiert, der für diese Art von Arbeit am besten geeignet ist. Die Planung muss auch zwischen Warteschlangen erfolgen, dh eine Planung einer Warteschlange, um Zeit in Bezug auf andere Warteschlangen zu erhalten. Gemeinsame Optionen sind Priorität und Round-Robin. Prozesse können keine Warteschlangen wechseln, die Warteschlange beenden oder die Warteschlange eingeben.
Diese Zeitplanung ähnelt der mehrstufigen Warteschlangenplanung, außer dass Jobs aus diesen Gründen von einer Warteschlange in eine andere verschoben werden können: - Wenn Merkmale des Prozesses zwischen CPU -Intesiver zu E/A -Intensiv umgeschaltet sind. - Wenn der Prozess gealtert ist, hat dieser Prozess lange gewartet
Diese Planung führt kürzeste Prozesse aus und berechnet, welcher Prozess auf der Grundlage des Verhaltens früherer Verhaltensweisen am kürzesten ist. Die Berechnung ist einfach, wobei der neue Wert zur aktuellen Schätzung hinzugefügt wird und die Summe durch 2. Teilen der Technik zur Schätzung des nächsten Werts in einer Reihe durch den gewichteten Durchschnitt des aktuellen Messwerts und die vorherige Schätzung wird manchmal als Alterung bezeichnet
Bei N -Prozessen, in denen alle Dinge gleich sind, sollte jeder 1/n der CPU -Zyklen erhalten. Das System muss nachverfolgen, wie viel CPU jeder Prozess seit seiner Erstellung hat, und dann die Menge an CPU berechnet, die jeder Prozess zum Verhältnis der tatsächlichen CPU -Zeit berechtigt ist. Der Algorithmus wird dann den Prozess mit der niedrigsten Ration ausführen
Die Idee ist es, Processe Lottery Tickets für Systemressourcen wie die CPU -Zeit zu geben. Wenn eine Planungsentscheidung getroffen werden muss, wird zufällig ein Lotteriekarten ausgewählt, und der Prozess, der dieses Ticket hält, erhält die Ressource. Wichtigere Prozesse können zusätzliche Tickets erhalten, um ihre Gewinn -IDDs zu erhöhen. Ein Prozess, der einen Bruchteil der Tickets hält, wird wegen eines Bruchteils f der fraglichen Ressource erhalten. Kosporatierprozesse können Tickets austauschen, wenn sie dies wünschen