Prioritätsplanungsalgorithmus: Präventiv, nicht präventiv BEISPIEL
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 ist 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 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.
Merkmale der Prioritätsplanung
- Ein CPU-Algorithmus, der Prozesse basierend auf der Priorität plant.
- Es wurde 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 ist die Priorität.
- Wenn bei dieser Art von Planungsalgorithmus ein neuerer Prozess eintrifft, der eine höhere Priorität als der aktuell laufende Prozess hat, wird der aktuell laufende Prozess vorgezogen.
Beispiel für Prioritätsplanung
Betrachten Sie die folgenden fünf Prozesse P1 bis P5. Jeder Prozess hat seine eigene Priorität, Burst-Zeit und 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 = 0 treffen die Prozesse P1 und P2 ein. P1 hat eine höhere Priorität als P2. Die Ausführung beginnt mit Prozess P1, der die Burst-Zeit 4 hat.
Schritt 1) Zum Zeitpunkt = 1 kommt kein neuer Prozess an. Die Ausführung wird mit P1 fortgesetzt.
Schritt 2) Zum Zeitpunkt 2 trifft kein neuer Prozess ein, sodass Sie mit P1 fortfahren können. P2 befindet sich in der Warteschlange.
Schritt 3) Zum Zeitpunkt 3 trifft kein neuer Prozess ein, sodass Sie mit P1 fortfahren können. P2-Prozess befindet sich noch in der Warteschlange.
Schritt 4) Zum Zeitpunkt 4 hat P1 seine Ausführung abgeschlossen. P2 startet die Ausführung.
Schritt 5) Zum Zeitpunkt = 5 kommt kein neuer Prozess an, also fahren wir mit P2 fort.
Schritt 6) Zum Zeitpunkt = 6 kommt P3 an. P3 hat eine höhere Priorität (1) als P2 mit Priorität (2). P2 wird vorbelegt und P3 beginnt 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 |
Schritt 7) Bei Bei 7 kommt kein neuer Prozess, also fahren wir mit P3 fort. P2 befindet sich in der Warteschlange.
Schritt 8) Zum Zeitpunkt = 8 kommt kein neuer Prozess an, wir können also mit P3 fortfahren.
Schritt 9) Zum Zeitpunkt = 9 kommt kein neuer Prozess, sodass wir mit P3 fortfahren können.
Schritt 10) Im Zeitintervall 10 kommt kein neuer Prozess, also fahren wir mit P3 fort
Schritt 11) Zum Zeitpunkt = 11 kommt P4 mit der Priorität 4 an. 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 |
Schritt 12) Zum Zeitpunkt = 12 kommt P5 an. P3 hat eine höhere Priorität und setzt daher die Ausführung fort.
Schritt 13) Zum Zeitpunkt = 13 schließt P3 die Ausführung ab. Wir haben P2, P4, P5 in der Bereitschaftswarteschlange. P2 und P5 haben die gleiche Priorität. Die Ankunftszeit von P2 liegt vor P5. Also 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 |
Schritt 14) Zum Zeitpunkt =14 hat der P2-Prozess seine Ausführung abgeschlossen. P4 und P5 befinden sich im Wartezustand. P5 hat die höchste Priorität und startet die Ausführung.
Schritt 15) Zum Zeitpunkt =15 setzt P5 die Ausführung fort.
Schritt 16) Zum Zeitpunkt = 16 ist P5 mit seiner Ausführung fertig. P4 ist der einzige verbleibende Prozess. Es beginnt mit der Ausführung.
Schritt 17) Zum Zeitpunkt =20 hat P5 die Ausführung abgeschlossen und es ist kein Prozess mehr übrig.
Schritt 18) Berechnen wir die durchschnittliche Wartezeit für das obige Beispiel.
Wartezeit = Startzeit – Ankunftszeit + Wartezeit für den nächsten Burst
P1 = o - o = o P2 =4 - o + 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 sind die Vorteile/Vorteile der Verwendung der Prioritätsplanungsmethode:
- Einfach zu verwendende Planungsmethode
- Prozesse werden nach Priorität ausgeführt, sodass bei hoher Priorität nicht lange gewartet werden muss, was Zeit spart
- Diese Methode bietet einen guten Mechanismus, mit dem die relative Wichtigkeit jedes Prozesses genau definiert werden kann.
- Geeignet für Anwendungen mit schwankendem Zeit- und Ressourcenbedarf.
Nachteile der Prioritätsplanung
Hier sind die Vor- und Nachteile der Prioritätsplanung aufgeführt
- 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.
Zusammenfassung
- Bei der Prioritätsplanung handelt es sich um 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.
- Beim Priority Preemptive Scheduling werden die Aufgaben meist mit ihren Prioritäten zugewiesen.
- Bei der nicht präemptiven Planungsmethode „Priorität“ wurde die CPU einem bestimmten Prozess zugewiesen.
- Prozesse werden nach Priorität ausgeführt, sodass bei hoher Priorität nicht lange gewartet werden muss, was Zeit spart
- Wenn Prozesse mit hoher Priorität viel CPU-Zeit beanspruchen, können Prozesse mit niedrigerer Priorität verhungern und auf unbestimmte Zeit verschoben werden.