Prioritätsplanungsalgorithmus: Präemptiv, Nicht-präemptiv

⚡ Intelligente Zusammenfassung

Prioritätsplanung ist eine Methode zur CPU-Planung, die Prozesse anhand ihrer Priorität auswählt und Aufgaben mit höherer Priorität zuerst ausführt. Sie kann präemptiv oder nicht-präemptiv sein, und Prozesse mit gleicher Priorität werden nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“ oder im Round-Robin-Verfahren abgearbeitet.

  • 🎯 Definition: Die Prozesse werden nach Priorität geplant, wobei Aufgaben mit höherer Priorität vor solchen mit niedrigerer Priorität ausgeführt werden.
  • 🔢 Prioritätsnummer: Eine niedrigere Zahl bedeutet in der Regel eine höhere Priorität.
  • ⏸️ Präventiv: Ein eingehender Prozess mit höherer Priorität kann einen aktuell laufenden Prozess mit niedrigerer Priorität unterbrechen.
  • ▶ ️ Nicht präemptiv: Der laufende Prozess belegt die CPU, bis er beendet wird oder den Kontext wechselt.
  • Vorteil: Wichtige Prozesse laufen schnell ab, wobei die relative Wichtigkeit der CPU-Zeit entspricht.
  • ⚠️ Nachteil: Prozesse mit niedriger Priorität können vernachlässigt werden und auf unbestimmte Zeit warten.

Prioritätsplanungsalgorithmus

Was ist Prioritätsplanung?

Prioritätsplanung ist eine Methode zur Planung von Prozessen, die auf der Priorität basiert. Bei diesem Algorithmus wählt der Planer die zu bearbeitenden Aufgaben entsprechend der Priorität aus.

Die Prozesse mit höherer Priorität sollten zuerst ausgeführt werden, während Jobs mit gleicher Priorität auf Round-Robin- oder FCFS-Basis ausgeführt werden. Die Priorität hängt von Speicheranforderungen, Zeitanforderungen usw. ab.

Arten der Prioritätsplanung

Die Prioritätsplanung wird in zwei Haupttypen unterteilt:

Präventive Planung

Beim Preemptive Scheduling werden die Aufgaben meist mit ihren Prioritäten zugewiesen. Manchmal ist es wichtig, eine Aufgabe mit höherer Priorität vor einer anderen Aufgabe mit niedrigerer Priorität auszuführen, auch wenn die Aufgabe mit niedrigerer Priorität noch ausgeführt wird. Die Aufgabe mit niedrigerer Priorität bleibt einige Zeit bestehen und wird fortgesetzt, wenn die Aufgabe mit höherer Priorität ihre Ausführung abgeschlossen hat.

Nicht-präventive Planung

Bei dieser Scheduling-Methode wird die CPU einem bestimmten Prozess zugewiesen. Der Prozess, der die CPU belegt, gibt sie entweder durch Kontextwechsel oder durch Beendigung wieder frei. Es ist die einzige Methode, die auf verschiedenen Hardwareplattformen eingesetzt werden kann, da sie im Gegensatz zum präemptiven Scheduling keine spezielle Hardware (z. B. einen Timer) benötigt.

Merkmale der Prioritätsplanung

  • Ein CPU-Algorithmus, der Prozesse basierend auf der Priorität plant.
  • Es wird in verwendet Operating-Systeme zur Durchführung von Batch-Prozessen.
  • Wenn zwei Jobs mit derselben Priorität BEREIT sind, wird an einem gearbeitet WER ZUERST KOMMT, MAHLT ZUERST Basis.
  • Bei der Prioritätsplanung wird jedem Prozess eine Nummer zugewiesen, die seine Prioritätsstufe angibt.
  • Je niedriger die Zahl, desto höher die Priorität.
  • Bei diesem Scheduling-Algorithmus wird der aktuell laufende Prozess unterbrochen, wenn ein neuerer Prozess mit höherer Priorität als der aktuell laufende Prozess eintrifft.

Beispiel für Prioritätsplanung

Betrachten Sie die folgenden fünf Prozesse P1 bis P5. Jeder Prozess hat seine eigene Priorität, seine eigene Ausführungszeit und seine eigene Ankunftszeit.

Prozess Priorität Burst-Zeit Ankunftszeit
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Schritt 0) Zum Zeitpunkt t = 0 treffen die Prozesse P1 und P2 ein. P1 hat eine höhere Priorität als P2. Die Ausführung beginnt mit Prozess P1, dessen Ausführungszeit 4 beträgt.

Prioritätsplanung

Schritt 1) Zum Zeitpunkt t = 1 trifft kein neuer Prozess ein. Die Ausführung wird mit P1 fortgesetzt.

Prioritätsplanung

Schritt 2) Zum Zeitpunkt 2 trifft kein neuer Prozess ein, sodass Sie mit P1 fortfahren können. P2 befindet sich in der Warteschlange.

Prioritätsplanung

Schritt 3) Zum Zeitpunkt 3 trifft kein neuer Prozess ein, sodass Sie mit P1 fortfahren können. Der Prozess P2 befindet sich noch in der Warteschlange.

Prioritätsplanung

Schritt 4) Zum Zeitpunkt 4 hat P1 seine Ausführung abgeschlossen. P2 startet die Ausführung.

Prioritätsplanung

Schritt 5) Zum Zeitpunkt t = 5 trifft kein neuer Prozess ein, daher fahren wir mit P2 fort.

Prioritätsplanung

Schritt 6) Zum Zeitpunkt t = 6 trifft Prozess P3 ein. P3 hat eine höhere Priorität (1) als P2 mit Priorität (2). P2 wird unterbrochen, und P3 beginnt seine Ausführung.

Prozess Priorität Burst-Zeit Ankunftszeit
P1 1 4 0
P2 2 1 von 3 ausstehend 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Prioritätsplanung

Schritt 7) Zum Zeitpunkt 7 trifft kein neuer Prozess ein, daher fahren wir mit P3 fort. P2 befindet sich in der Warteschlange.

Prioritätsplanung

Schritt 8) Zum Zeitpunkt t = 8 trifft kein neuer Prozess ein, sodass wir mit P3 fortfahren können.

Prioritätsplanung

Schritt 9) Zum Zeitpunkt t = 9 tritt kein neuer Prozess ein, sodass wir mit P3 fortfahren können.

Prioritätsplanung

Schritt 10) Im Zeitintervall 10 tritt kein neuer Prozess ein, daher fahren wir mit P3 fort.

Prioritätsplanung

Schritt 11) Zum Zeitpunkt t = 11 trifft P4 mit Priorität 4 ein. P3 hat eine höhere Priorität und setzt daher seine Ausführung fort.

Prozess Priorität Burst-Zeit Ankunftszeit
P1 1 4 0
P2 2 1 von 3 ausstehend 0
P3 1 2 von 7 ausstehend 6
P4 3 4 11
P5 2 2 12

Prioritätsplanung

Schritt 12) Zum Zeitpunkt t = 12 trifft P5 ein. P3 hat eine höhere Priorität und setzt daher die Ausführung fort.

Prioritätsplanung

Schritt 13) Zum Zeitpunkt t = 13 ist die Ausführung von Prozess P3 abgeschlossen. P2, P4 und P5 befinden sich in der Warteschlange. P2 und P5 haben die gleiche Priorität. Da P2 vor P5 eintrifft, beginnt P2 mit der Ausführung.

Prozess Priorität Burst-Zeit Ankunftszeit
P1 1 4 0
P2 2 1 von 3 ausstehend 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Prioritätsplanung

Schritt 14) Zum Zeitpunkt t = 14 hat der Prozess P2 seine Ausführung abgeschlossen. P4 und P5 befinden sich im Wartezustand. P5 hat die höchste Priorität und beginnt mit der Ausführung.

Prioritätsplanung

Schritt 15) Zum Zeitpunkt t = 15 wird die Ausführung von P5 fortgesetzt.

Prioritätsplanung

Schritt 16) Zum Zeitpunkt t = 16 hat Prozess P5 seine Ausführung abgeschlossen. Prozess P4 ist der einzige verbleibende Prozess. Er beginnt seine Ausführung.

Prioritätsplanung

Schritt 17) Zum Zeitpunkt t = 20 hat P4 die Ausführung abgeschlossen und es ist kein Prozess mehr vorhanden.

Prioritätsplanung

Schritt 18) Lassen Sie uns die durchschnittliche Wartezeit für das obige Beispiel berechnen.

Wartezeit = Startzeit – Ankunftszeit + Wartezeit für den nächsten Burst

P1 = 0 - 0 = 0
P2 = 4 - 0 + 7 = 11
P3 = 6 - 6 = 0
P4 = 16 - 11 = 5
Average Waiting time = (0 + 11 + 0 + 5 + 2)/5 = 18/5 = 3.6

Vorteile der Prioritätsplanung

Hier die Vorteile der Prioritätsplanungsmethode:

  • Einfache Terminplanungsmethode.
  • Die Prozesse werden prioritätsbasiert ausgeführt, sodass Prozesse mit hoher Priorität nicht lange warten müssen, was Zeit spart.
  • Diese Methode bietet einen guten Mechanismus, mit dem die relative Bedeutung jedes einzelnen Prozesses präzise definiert werden kann.
  • Geeignet für Anwendungen mit schwankendem Zeit- und Ressourcenbedarf.

Nachteile der Prioritätsplanung

Hier sind die Nachteile der Prioritätsplanung:

  • Wenn das System irgendwann abstürzt, gehen alle Prozesse mit niedriger Priorität verloren.
  • Wenn Prozesse mit hoher Priorität viel CPU-Zeit beanspruchen, können Prozesse mit niedrigerer Priorität verhungern und auf unbestimmte Zeit verschoben werden.
  • Dieser Planungsalgorithmus kann dazu führen, dass einige Prozesse mit niedriger Priorität auf unbestimmte Zeit warten.
  • Ein Prozess wird blockiert, wenn er zur Ausführung bereit ist, muss aber auf die CPU warten, da gerade ein anderer Prozess ausgeführt wird.
  • Wenn immer wieder ein neuer Prozess mit höherer Priorität in die Bereitschaftswarteschlange gelangt, muss der Prozess, der sich im Wartezustand befindet, möglicherweise längere Zeit warten.

Häufig gestellte Fragen

Prozessverhungern tritt auf, wenn Prozesse mit niedriger Priorität unbegrenzt warten müssen, weil ständig Prozesse mit höherer Priorität eintreffen. Prozessalterung behebt dieses Problem, indem die Priorität der lange wartenden Prozesse schrittweise erhöht wird, sodass schließlich jeder Prozess ausgeführt wird.

In den meisten Betriebssystemen bedeutet eine niedrigere Prioritätsnummer eine höhere Priorität. Beispielsweise wird ein Prozess mit Priorität 1 vor einem Prozess mit Priorität 3 ausgeführt. Bei manchen Systemen ist dies jedoch umgekehrt. Prüfen Sie daher immer die verwendete Konvention.

Die Priorität kann intern anhand von Faktoren wie Speicherbedarf, Zeitvorgaben und CPU-Spitzenlast oder extern vom Benutzer oder Administrator basierend auf Wichtigkeit, Kosten oder Fristen festgelegt werden. Sie kann statisch (fest) oder dynamisch (zur Laufzeit veränderlich) sein.

KI kann Prozessprioritäten dynamisch zuweisen und anpassen, indem sie Arbeitslastmuster und Fristen lernt. Dies trägt dazu bei, dass wichtige Aufgaben termingerecht abgeschlossen werden, während gleichzeitig das Risiko von Ressourcenengpässen reduziert wird. Dadurch werden der Gesamtdurchsatz und die Reaktionsfähigkeit in komplexen, sich verändernden Systemen verbessert.

Ja. KI kann Wartezeiten überwachen und die Priorität langlaufender Prozesse automatisch erhöhen – ähnlich wie intelligentes Altern. Durch die Vorhersage von Engpässen wird ein besseres Gleichgewicht zwischen Fairness und Leistung erreicht als mit festen Regeln, sodass Aufträge mit niedriger Priorität nicht unnötig verzögert werden.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: