Das Prozessor-Scheduling (CPU-Scheduling) bestimmt basierend auf Scheduling-Modellen wie präemptiven und nicht-präemptiven Scheduling, welche Prozesse der CPU zugewiesen und aus ihr entfernt werden. CPU-Scheduling nutzt die CPU voll aus, was zu einem schnellen und effizienten System führt.
Üblicherweise werden Aufgaben in Computersystemen nach Prioritäten zugewiesen. Irgendwann ist es notwendig, eine bestimmte Aufgabe vor einer anderen auszuführen, obwohl sie läuft. Daher wird die laufende Task für einige Zeit unterbrochen und später fortgesetzt, wenn die Ausführung der priorisierten Task beendet ist. Dies wird als präemptives Scheduling bezeichnet . Die präemptive Planung wird verwendet, wenn ein Prozess vom laufenden Zustand in den Bereitschaftszustand oder vom Wartezustand in den Bereitschaftszustand wechselt.
Beim nicht-präemptiven Scheduling unterbricht das Scheduling keinen Prozess, der die CPU mitten in der Ausführung ausführt. Stattdessen wartet er, bis der Prozess seine CPU-Burstzeit abgeschlossen hat, und kann dann die CPU einem anderen Prozess zuweisen. Nicht-präemptives Scheduling ist das einzige Verfahren, das auf bestimmten Hardwareplattformen verwendet werden kann, da es keine spezielle Hardware benötigt, beispielsweise einen Timer, der für präemptives Scheduling benötigt wird.
VERGLEICHSGRUNDLAGE | PRÄEMPTIVE PLANUNG | NICHT-PRÄEMPTIVE PLANUNG |
Beschreibung | Preemptives Scheduling bedeutet, dass die Prozesse mit höheren Prioritäten zuerst ausgeführt werden. Ein Prozess kann während seiner Ausführung von einem anderen Prozess unterbrochen werden. | Eine nicht-präemptive Planung bedeutet, dass, sobald die CPU einem Prozess zugewiesen wurde, der Prozess die CPU behält, bis er die CPU entweder durch Beenden oder durch Umschalten in den Wartezustand freigibt. |
Alternative Beschreibung | Das präemptive Scheduling kann als flexibel bezeichnet werden, da es den kritischen Prozessen ermöglicht, auf die CPU zuzugreifen, sobald sie in der Bereitschaftswarteschlange ankommen, unabhängig davon, welcher Prozess gerade ausgeführt wird. | Nicht-präemptives Scheduling kann als starr bezeichnet werden, denn selbst wenn ein kritischer Prozess in die Bereitschaftswarteschlange eintritt, wird der Prozess, auf dem die CPU ausgeführt wird, nicht unterbrochen. |
Prozessausführung | Wenn beim präemptiven Scheduling ein Prozess mit höherer Priorität in eine Bereitschaftswarteschlange eintritt, wird der Prozess mit niedrigerer Priorität entfernt. | Beim nicht-präemptiven Scheduling wird der Prozess, sobald er der CPU zugewiesen wurde, seine Ausführung abschließen. |
Prozessplanung | Bei der präemptiven Planung kann der Prozess geplant werden. | Bei der nicht präemptiven Planung kann der Prozess nicht geplant werden. |
Problem bei der Datenfreigabe | Die präemptive Planung kann ein Problem verursachen, wenn zwei Prozesse Daten gemeinsam nutzen, da einer während der Aktualisierung gemeinsam genutzter Datenstrukturen unterbrochen werden kann. | Dies ist bei der nicht-präemptiven Planung normalerweise nicht der Fall. |
Overhead für das Umschalten des Prozesses | Das präemptive Scheduling hat den Overhead, den Prozess vom Bereitschaftszustand in den Ausführungszustand und vom Ausführungszustand in den Bereitschaftszustand zu schalten. | Nicht-präemptives Scheduling hat keinen Overhead für das Umschalten des Prozesses vom laufenden Zustand in den Bereitschaftszustand |
CPU-Auslastung | Beim präemptiven Scheduling ist die CPU-Auslastung höher als beim nicht-präemptiven Scheduling. | Beim nicht-präemptiven Scheduling ist die CPU-Auslastung niedriger als beim präemptiven Scheduling. |
wird bearbeitet | Wenn bei der präemptiven Planung häufig ein Prozess mit hoher Priorität in der Bereitschaftswarteschlange ankommt, muss der Prozess mit niedriger Priorität lange warten und muss möglicherweise verhungern. | Wenn bei der nicht-präemptiven Planung die CPU dem Prozess mit einer größeren Burst-Zeit zugewiesen wird, müssen die Prozesse mit einer kleinen Burst-Zeit möglicherweise hungern. |
Kosten | Das präemptive Scheduling ist im Vergleich zum nicht-präemptiven Scheduling teuer, da es die Integrität der gemeinsam genutzten Daten aufrechterhalten muss. | Das nicht-präemptive Scheduling ist im Vergleich zum präemptiven Scheduling weniger kostspielig, da es die Integrität gemeinsam genutzter Daten nicht aufrechterhalten muss. |
Lesen Sie auch : Unterschied zwischen Prozess und Thread
Vor- und Nachteile der präemptiven Planung gegenüber der nicht präemptiven Planung
Das präemptive Scheduling ermöglicht es dem Scheduler, die Antwortzeiten zu steuern, indem er die CPU von einem Prozess wegnimmt, von dem er entschieden hat, dass er zu lange läuft, um einen anderen Prozess laufen zu lassen. Es verursacht mehr Overhead als nicht-präemptives Scheduling, da es mit dem Overhead von Kontextwechselprozessen fertig werden muss, anstatt zuzulassen, dass ein Prozess bis zum Abschluss oder bis zur nächsten E/A-Operation oder einem anderen Systemaufruf läuft. Es ermöglicht jedoch einen höheren Grad an Parallelität und eine bessere interaktive Leistung.
Haben Sie sich jemals gefragt, warum Sie manchmal bei Einkäufen Ihre PIN eingeben müssen und…
Haben Sie sich jemals gefragt, warum Ärzte manchmal eine CT-Untersuchung und in anderen Fällen ein…
Haben Sie sich jemals gefragt, warum manche Menschen von ihrem "Lohn" sprechen, während andere ihr…
Seide oder Baumwolle: Ein ewiger Wettstreit um Weichheit und Komfort 🧵🌿 Haben Sie sich jemals…
Haben Sie sich jemals gefragt, warum manche Radfahrer scheinbar mühelos Steigungen erklimmen, während andere ins…
Staubsaugen - eine lästige Pflicht, die niemand gerne erledigt. 🧹 Doch in der Welt der…