Präventive und nicht-präventive Planung

Hauptunterschiede zwischen präemptiver und nicht präemptiver Planung

  • Bei der präemptiven Planung wird die CPU den Prozessen für einen bestimmten Zeitraum zugewiesen, und die nicht präemptive Planungs-CPU wird dem Prozess zugewiesen, bis er beendet wird.
  • Beim präemptiven Scheduling werden Aufgaben basierend auf der Priorität gewechselt, während beim nicht präemptiven Scheduling kein Wechsel stattfindet.
  • Beim präemptiven Algorithmus entsteht der Overhead, den Prozess vom Bereitschaftszustand in den laufenden Zustand zu schalten, während bei der nicht präemptiven Planung kein solcher Overhead des Umschaltens entsteht.
  • Preemptive Scheduling ist flexibel, während Non-Preemptive Scheduling starr ist.
Vorbeugende vs. nicht-vorbeugende Planung
Vorbeugende vs. nicht-vorbeugende Planung

Was ist Preemptive Scheduling?

Preemptive Scheduling ist eine Planungsmethode, bei der die Aufgaben meist mit ihren Prioritäten zugewiesen werden. 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.

Zu diesem Zeitpunkt hält die Aufgabe mit niedrigerer Priorität einige Zeit an und wird fortgesetzt, wenn die Aufgabe mit höherer Priorität ihre Ausführung beendet hat.

Was ist nicht präemptive Planung?

Bei dieser Art von Planungsmethode wurde die CPU einem bestimmten Prozess zugewiesen. Der Prozess, der die CPU beschäftigt hält, gibt die CPU frei, indem er entweder den Kontext wechselt oder beendet wird.

Dies ist die einzige Methode, die für verschiedene Hardwareplattformen verwendet werden kann. Das liegt daran, dass keine spezielle Hardware (z. B. ein Timer) wie bei der präventiven Planung erforderlich ist.

Nicht-präventive Planung erfolgt, wenn ein Prozess freiwillig in den Wartezustand wechselt oder beendet wird.

Präventive und nicht-präventive Planung: Vergleichstabelle

Hier finden Sie einen direkten Vergleich zwischen präemptiver und nicht präemptiver Planung. Die Hauptunterschiede zwischen präemptiver und nicht präemptiver Planung im Betriebssystem sind folgende:

Präventive Planung Nicht präemptive Planung
Ein Prozessor kann dazu verpflichtet werden, die verschiedenen Prozesse mitten in einer aktuellen Prozessausführung auszuführen. Sobald der Prozessor seine Ausführung beginnt, muss er diese beenden, bevor er die andere ausführt. Es kann nicht mittendrin angehalten werden.
Die CPU-Auslastung ist effizienter als bei Non-Preemptive Scheduling. Die CPU-Auslastung ist im Vergleich zur präventiven Planung weniger effizient.
Die Warte- und Reaktionszeit der präventiven Planung ist kürzer. Die Warte- und Antwortzeit der nicht präemptiven Planungsmethode ist höher.
Präventive Planung hat Priorität. Der Prozess mit der höchsten Priorität ist der Prozess, der aktuell genutzt wird. Wenn ein Prozess in den Ausführungsstatus wechselt, wird der Status dieses Prozesses erst dann aus dem Scheduler gelöscht, wenn er seine Aufgabe beendet hat.
Die präventive Planung ist flexibel. Die nicht präventive Planung ist starr.
Beispiele: – Kürzeste verbleibende Zeit zuerst, Round Robin usw. Beispiele: Wer zuerst kommt, malt zuerst, Kürzester Job zuerst, Prioritätsplanung usw.
Der Preemptive-Scheduling-Algorithmus kann präventiv ausgeführt werden, d. h. der Prozess kann geplant werden Im nicht präventiven Planungsprozess kann kein Zeitplan erstellt werden
Dabei wird den Prozessen die CPU für einen bestimmten Zeitraum zugewiesen. In diesem Prozess wird dem Prozess CPU zugewiesen, bis er beendet wird oder in den Wartezustand wechselt.
Der präventive Algorithmus hat den Aufwand, den Prozess vom Bereitschaftszustand in den laufenden Zustand und umgekehrt zu schalten. Bei der nicht-präventiven Planung entsteht kein solcher Aufwand, den Prozess vom laufenden in den Bereitschaftszustand zu versetzen.

Vorteile der präventiven Planung

Hier sind die Vorteile/Vorteile der Preemptive Scheduling-Methode:

  • Die präemptive Planungsmethode ist ein robusterer Ansatz, sodass ein Prozess die CPU nicht monopolisieren kann
  • Wahl der laufenden Aufgabe wird nach jeder Unterbrechung neu überdacht.
  • Jedes Ereignis führt zu einer Unterbrechung laufender Aufgaben
  • Das Betriebssystem stellt sicher, dass die CPU-Auslastung aller laufenden Prozesse gleich ist.
  • Dabei ist die CPU-Nutzung gleich, dh alle laufenden Prozesse nutzen die CPU gleichermaßen.
  • Diese Planungsmethode verbessert auch die durchschnittliche Antwortzeit.
  • Preemptive Scheduling ist vorteilhaft, wenn wir es für die Multiprogrammierungsumgebung verwenden.

Vorteile der nicht präventiven Planung

Hier sind die Vorteile/Vorteile der nicht-präventiven Planungsmethode:

  • Bietet einen geringen Planungsaufwand
  • Bietet tendenziell einen hohen Durchsatz
  • Es handelt sich konzeptionell um eine sehr einfache Methode
  • Less Rechenressourcenbedarf für Scheduling

Nachteile der präventiven Planung

Die Nachteile der präemptiven Planung sind:

  • Benötigt begrenzte Rechenressourcen für die Planung
  • Der Planer benötigt mehr Zeit, um die laufende Aufgabe anzuhalten, den Kontext zu wechseln und die neue eingehende Aufgabe zu versenden.
  • Der Prozess mit niedriger Priorität muss länger warten, wenn einige Prozesse mit hoher Priorität kontinuierlich eintreffen.

Nachteile der nicht-präventiven Planung

Hier sind die Nachteile/Nachteile der nicht-präventiven Planungsmethode:

  • Dies kann insbesondere bei diesen Echtzeitaufgaben zu einer Hungersnot führen
  • Fehler können dazu führen, dass eine Maschine einfriert
  • Es kann in Echtzeit erfolgen und Prioritätsplanung schwer
  • Schlechte Reaktionszeit für Prozesse

Beispiel für nicht-präventive Planung

Bei der nicht präemptiven SJF-Planung hält der Prozess den CPU-Zyklus, sobald er einem Prozess zugewiesen wurde, bis er einen Wartezustand erreicht oder beendet wird.

Betrachten Sie die folgenden fünf Prozesse, von denen jeder seine eigene Burst-Zeit und Ankunftszeit hat.

Warteschlange verarbeiten Burst-Zeit Ankunftszeit
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Schritt 0) Zum Zeitpunkt = 0 trifft P4 ein und beginnt mit der Ausführung.

Beispiel für nicht-präventive Planung

Schritt 1) Zum Zeitpunkt = 1 kommt Prozess P3 an. Für den Abschluss benötigt P4 jedoch noch zwei Ausführungseinheiten. Die Ausführung wird fortgesetzt.

Beispiel für nicht-präventive Planung

Schritt 2) Zum Zeitpunkt =2 trifft Prozess P1 ein und wird zur Warteschlange hinzugefügt. P4 wird die Ausführung fortsetzen.

Beispiel für nicht-präventive Planung

Schritt 3) Zum Zeitpunkt = 3 beendet Prozess P4 seine Ausführung. Die Burst-Zeit von P3 und P1 wird verglichen. Prozess P1 wird ausgeführt, da seine Burst-Zeit im Vergleich zu P3 kürzer ist.

Beispiel für nicht-präventive Planung

Schritt 4) Zum Zeitpunkt = 4 trifft Prozess P5 ein und wird zur Warteschlange hinzugefügt. P1 setzt die Ausführung fort.

Beispiel für nicht-präventive Planung

Schritt 5) Zum Zeitpunkt = 5 trifft Prozess P2 ein und wird zur Warteschlange hinzugefügt. P1 setzt die Ausführung fort.

Beispiel für nicht-präventive Planung

Schritt 6) Zum Zeitpunkt = 9 beendet Prozess P1 seine Ausführung. Die Burst-Zeit von P3, P5 und P2 wird verglichen. Prozess P2 wird ausgeführt, weil seine Burst-Zeit am niedrigsten ist.

Beispiel für nicht-präventive Planung

Schritt 7) Zum Zeitpunkt = 10 wird P2 ausgeführt und P3 und P5 befinden sich in der Warteschlange.

Beispiel für nicht-präventive Planung

Schritt 8) Zum Zeitpunkt = 11 beendet Prozess P2 seine Ausführung. Die Burst-Zeit von P3 und P5 wird verglichen. Prozess P5 wird ausgeführt, da seine Burst-Zeit geringer ist.

Beispiel für nicht-präventive Planung

Schritt 9) Zum Zeitpunkt = 15 beendet Prozess P5 seine Ausführung.

Beispiel für nicht-präventive Planung

Schritt 10) Zum Zeitpunkt = 23 beendet Prozess P3 seine Ausführung.

Beispiel für nicht-präventive Planung

Schritt 11) Berechnen wir die durchschnittliche Wartezeit für das obige Beispiel.

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Beispiel für eine vorbeugende Planung

Betrachten Sie hierzu die folgenden drei Prozesse in Round-Robin

Warteschlange verarbeiten Burst-Zeit
P1 4
P2 3
P3 5

Beispiel für eine vorbeugende Planung

Schritt 1) Die Ausführung beginnt mit Prozess P1, der die Burst-Zeit 4 hat. Hier wird jeder Prozess 2 Sekunden lang ausgeführt. P2 und P3 stehen noch in der Warteschlange.

Beispiel für eine vorbeugende Planung

Schritt 2) Zum Zeitpunkt =2 wird P1 am Ende der Warteschlange hinzugefügt und P2 beginnt mit der Ausführung

Beispiel für eine vorbeugende Planung

Schritt 3) Bei time=4 wird P2 vorbelegt und am Ende der Warteschlange hinzugefügt. P3 beginnt mit der Ausführung.

Beispiel für eine vorbeugende Planung

Schritt 4) Bei time=6 wird P3 vorbelegt und am Ende der Warteschlange hinzugefügt. P1 beginnt mit der Ausführung.

Beispiel für eine vorbeugende Planung

Schritt 5) Bei time=8 hat P1 eine Burst-Zeit von 4. Die Ausführung ist abgeschlossen. P2 startet die Ausführung

Beispiel für eine vorbeugende Planung

Schritt 6) P2 hat eine Burst-Zeit von 3. Es wurde bereits für 2 Intervalle ausgeführt. Zum Zeitpunkt = 9 schließt P2 die Ausführung ab. Dann beginnt P3 mit der Ausführung, bis sie abgeschlossen ist.

Beispiel für eine vorbeugende Planung

Schritt 7) Berechnen wir die durchschnittliche Wartezeit für das obige Beispiel.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7