Preemptive vs Non-Preemptive Scheduling: Hauptunterschiede

Inhaltsverzeichnis:

Anonim

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 einer höheren Priorität vor einer anderen Aufgabe mit niedrigerer Priorität auszuführen, selbst wenn die Aufgabe mit der niedrigeren Priorität noch ausgeführt wird.

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

In diesem Tutorial zum Betriebssystem lernen Sie:

  • Was ist Preemptive Scheduling?
  • Was ist nicht präventives Scheduling?
  • Unterschied zwischen präemptiver und nicht präemptiver Planung im Betriebssystem
  • Vorteile der präventiven Planung
  • Vorteile der nicht vorbeugenden Planung
  • Nachteile der präventiven Planung
  • Nachteile der nicht vorbeugenden Planung
  • Beispiel für eine nicht vorbeugende Planung
  • Beispiel für die vorbeugende Planung

Was ist nicht präventives Scheduling?

Bei dieser Art von Planungsmethode wurde die CPU einem bestimmten Prozess zugeordnet. Der Prozess, der die CPU beschäftigt, gibt die CPU entweder durch Umschalten des Kontexts oder durch Beenden frei.

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

Non-Preemptive Scheduling tritt auf, wenn ein Prozess freiwillig in den Wartezustand wechselt oder beendet wird.

Unterschied zwischen präemptiver und nicht präemptiver Planung im Betriebssystem

Hier sind Preemptive und Non-Preemptive Scheduling in OS

Präventive Planung Nicht präemptive Planung
Ein Prozessor kann davon abgehalten werden, die verschiedenen Prozesse mitten in einer aktuellen Prozessausführung auszuführen. Sobald der Prozessor seine Ausführung startet, muss er sie beenden, bevor er den anderen ausführt. Es kann nicht in der Mitte angehalten werden.
Die CPU-Auslastung ist im Vergleich zur nicht vorbeugenden Planung effizienter. Die CPU-Auslastung ist im Vergleich zur vorbeugenden Planung weniger effizient.
Die Wartezeit und Reaktionszeit der vorbeugenden Planung ist kürzer. Die Warte- und Antwortzeit der nicht präemptiven Planungsmethode ist höher.
Preemptive Scheduling hat Priorität. Der Prozess mit der höchsten Priorität ist ein Prozess, der derzeit verwendet wird. Wenn ein Prozess in den Status "Ausführen" wechselt, wird der Status dieses Prozesses erst dann aus dem Scheduler gelöscht, wenn er seinen Job beendet hat.
Preemptive Scheduling ist flexibel. Die nicht präemptive Planung ist starr.
Beispiele: - Kürzeste verbleibende Zeit zuerst, Round Robin usw. Beispiele: Wer zuerst kommt, mahlt zuerst, kürzester Job zuerst, Prioritätsplanung usw.
Der präemptive Planungsalgorithmus kann vorweggenommen werden, dh der Prozess kann geplant werden Im nicht präemptiven Planungsprozess kann nicht geplant werden
In diesem Prozess wird die CPU den Prozessen für einen bestimmten Zeitraum zugewiesen. In diesem Prozess wird die CPU dem Prozess zugewiesen, bis sie beendet wird oder in den Wartezustand wechselt.
Der präventive Algorithmus hat den Aufwand, den Prozess vom Bereitschaftszustand in den Betriebszustand und umgekehrt umzuschalten. Die nicht präemptive Planung hat keinen solchen Aufwand, den Prozess vom Ausführen in den Bereitschaftszustand zu versetzen.

Vorteile der präventiven Planung

Hier sind die Vorteile der Preemptive Scheduling-Methode:

  • Die präventive Planungsmethode ist robuster, sodass ein Prozess die CPU nicht monopolisieren kann
  • Die Wahl der laufenden Aufgabe wird nach jeder Unterbrechung überdacht.
  • Jedes Ereignis führt zu einer Unterbrechung der laufenden Aufgaben
  • Das Betriebssystem stellt sicher, dass die CPU-Auslastung für alle laufenden Prozesse gleich ist.
  • Dabei ist die CPU-Auslastung gleich, dh alle laufenden Prozesse nutzen die CPU gleichermaßen.
  • Diese Planungsmethode verbessert auch die durchschnittliche Antwortzeit.
  • Preemptive Scheduling ist von Vorteil, wenn wir es für die Multi-Programmier-Umgebung verwenden.

Vorteile der nicht vorbeugenden Planung

Hier sind die Vorteile der nicht präemptiven Planungsmethode:

  • Bietet geringen Planungsaufwand
  • Neigt dazu, einen hohen Durchsatz zu bieten
  • Es ist konzeptionell eine sehr einfache Methode
  • Für die Planung werden weniger Rechenressourcen benötigt

Nachteile der präventiven Planung

Hier sind die Vor- und Nachteile der Preemptive Scheduling-Methode:

  • Benötigen Sie begrenzte Rechenressourcen für die Planung
  • Der Scheduler benötigt eine höhere Zeit, um die ausgeführte 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 vorbeugenden Planung

Hier sind die Vor- und Nachteile der nicht-präemptiven Planungsmethode:

  • Dies kann insbesondere bei Echtzeitaufgaben zu Hunger führen
  • Fehler können dazu führen, dass eine Maschine einfriert
  • Dies kann die Echtzeit- und Prioritätsplanung erschweren
  • Schlechte Reaktionszeit für Prozesse

Beispiel für eine nicht vorbeugende Planung

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

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

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

Schritt 0) Zum Zeitpunkt = 0 kommt P4 an und startet die Ausführung.

Schritt 1) Zum Zeitpunkt = 1 kommt der Prozess P3 an. P4 benötigt jedoch noch 2 Ausführungseinheiten, um abgeschlossen zu werden. Die Ausführung wird fortgesetzt.

Schritt 2) Zum Zeitpunkt = 2 kommt der Prozess P1 an und wird zur Warteschlange hinzugefügt. P4 setzt die Ausführung fort.

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

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

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

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

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

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

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

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

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

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

Beispiel für die vorbeugende Planung

Betrachten Sie diese folgenden drei Prozesse in Round-Robin

Prozesswarteschlange Burst-Zeit
P1 4
P2 3
P3 5

Schritt 1) Die Ausführung beginnt mit dem 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.

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

Schritt 3) Zum Zeitpunkt = 4 wird P2 vorbelegt und am Ende der Warteschlange hinzugefügt. P3 wird ausgeführt.

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

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

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.

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

Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7

WICHTIGE UNTERSCHIEDE

  • In 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.
  • In der präemptiven Planung werden Aufgaben nach Priorität umgeschaltet, während bei der nicht präemptiven Planung keine Umschaltung stattfindet.
  • Der präemptive Algorithmus hat den Overhead, den Prozess vom Bereitschaftszustand in den laufenden Zustand umzuschalten, während die nicht präemptive Planung keinen solchen Overhead beim Umschalten hat.
  • Preemptive Scheduling ist flexibel, während Non-Preemptive Scheduling starr ist.