Unterschied zwischen Präventiv und nicht preemptiver Planung in Betriebssystemen

Unterschied zwischen Präventiv und nicht preemptiver Planung in Betriebssystemen

Prozessorplanung (oder CPU -Planung) bestimmt, welche Prozesse zugewiesen und aus der CPU entfernt werden, basierend auf Planungsmodellen wie z Präventiv Und Nicht preemptive Planung (auch bekannt als Genossenschaftsplanung).

Ältere Systeme könnten in einfachen eigenständigen Modi arbeiten, aber mit dem zunehmenden Bedarf an reaktionsfähigen, flexiblen Systemen sowie der Virtualisierung liefert die effiziente Verwaltung von Multi-Processing eine schnelle Reaktion auf alle Aufgabenverarbeitungsanforderungen.

Planungseinheiten werden oft als als Planungseinheiten bezeichnet Aufgabe Und es ist die Aufgabe des Schedulers, diese Aufgaben zu erledigen und zu verwalten, wann immer dies erforderlich ist. Der Scheduler wählt die zu entfernende und der CPU zur Verarbeitung zugewiesene Aufgabe aus, je nach dem verwendeten Planungsmodell.

Woher weiß der Scheduler, welche Aufgaben Priorität haben??

Der Scheduler muss einen fairen und effizienten Auswahlprozess ausführen, wobei variable, dynamische Verarbeitungsanforderungen und die CPU -Zyklen optimal nutzen müssen.

Aufgaben können in zwei Staaten in der Verarbeitung erfolgen:

  1. In einem CPU -Burst wobei die CPU Berechnungen ausführt, um die Aufgabe zu verarbeiten (der Zeitraum für einen CPU -Burst variiert von Aufgabe zu Aufgabe und Programm zu Programm).
  2. In einem (n Eingang/Ausgang (E/O) Burst Warten auf Daten, die vom System empfangen oder gesendet werden.

Wenn die CPU im Leerlauf ist, liest der Scheduler die Bereitete Warteschlange, und wählt die nächste Aufgabe aus, die ausgeführt wird.  Dann ist es das Dispatcher Das gibt die ausgewählte Aufgabensteuerung der CPU, so dass sie schnell sein muss!  Jedes Mal, wenn der Dispatcher aufgenommen wird, wird als bekannt als bekannt als Versandlatenz.

Es gibt verschiedene Strukturen und benutzerdefinierte Parameter, um die zu definieren Bereitete Warteschlange, sowie verschiedene Methoden, mit denen die Komplexität des Planungsprozesses verwaltet werden kann.

Im Allgemeinen geht es darum, die CPU -Auslastung, den Durchsatz usw. zu optimieren und zu maximieren.

Der Scheduler muss in einer der folgenden Phasen eine Entscheidung treffen:

  1. Wenn sich die Aufgabe von a ändert Betrieb zu einem Wartezustand (Warten beispielsweise während einer E/A -Anfrage).
  2. Wenn sich die Aufgabe von ändert sich von Betrieb Zu Bereit (Zum Beispiel auf einen Interrupt reagieren).
  3. Wenn sich die Aufgabe von ändert sich von Warten Zu Bereit (Zum Beispiel ist eine E/A -Anfrage abgeschlossen).
  4. Wenn das Aufgabe

Eine neue Aufgabe muss ausgewählt werden, wenn Stufe 1 oder 4 die volle Nutzung der CPU sicherstellt, und in Stufe 2 und 3 kann die Aufgabe weiter ausgeführt werden oder eine neue wird ausgewählt.

Nach dem Verständnis, wie eine Aufgabe verarbeitet wird, schauen wir uns zwei Planungsmodelle an, die sich mit CPU -Interrupts befassen.

Beide haben ähnliche Merkmale mit Aufgaben, Aufgabenzuständen, Warteschlangen und Prioritäten (statisch oder dynamisch):

  • Nicht preemptive Planung ist, wenn eine Aufgabe läuft, bis sie (freiwillig) gestoppt oder endet. Windows® hatte bis Windows 3 eine nicht preemptive Planung.x, danach änderte es sich von Windows 95 auf Präventiv.
  • Präventivplanung Dort kann eine Aufgabe von einem CPU-Interrupt gewaltsam suspendiert werden, im Gegensatz zu nicht preemptiven, bei denen die Aufgabe ausgeführt wird, bis sie die Kontrolle über die CPU veröffentlicht.

Nicht preemptive Planung

Aufgaben innerhalb eines nicht preemptiven Systems werden bis abgeschlossen ausgeführt.

Der Scheduler überprüft dann die Zustände aller Aufgaben und plant die erstklassige Prioritätsaufgabe mit a Bereit Zustand.

Mit einer nicht preemptiven Planung kann sie nach einer Aufgabe zur CPU nicht weggenommen werden, auch wenn kurze Aufgaben auf längere Aufgaben warten müssen, um sie zu erledigen.

Das Planungsmanagement für alle Aufgaben ist „fair“ und die Reaktionszeiten sind vorhersehbar, da Aufgaben mit hoher Priorität die Wartezeitaufgaben nicht weiter in die Warteschlange stellen können.

Der Scheduler stellt sicher, dass jede Aufgabe ihren Anteil an der CPU erhält und eine Verzögerung bei jeder Aufgabe vermeidet.  Die der CPU zugeteilte "Zeitspanne" ist möglicherweise nicht unbedingt gleich, da es davon abhängt, wie lange die Aufgabe dauert, um abzuschließen.

Präventivplanung

Mit diesem Planungsmodell können Aufgaben unterbrochen werden-im Gegensatz zu einer nicht preemptiven Zeitplanung, die einen Ansatz mit „Run-to-Completion“ hat.

Die Interrupts, die aus externen Aufrufen initiiert werden könnten, ruft den Scheduler auf, um eine laufende Aufgabe zu pausieren, um eine weitere Aufgabe mit höherer Priorität zu verwalten - so dass die Kontrolle der CPU vorbefragt werden kann.

Die höchste Prioritätsaufgabe in a Bereit Der Staat wird ausgeführt und ermöglicht eine schnelle Reaktion auf Echtzeit-Ereignisse.

Einige der Nachteile mit der präventiven Planung beinhalten die Zunahme von Gemeinkosten auf Ressourcen bei Verwendung von Interrupts und Probleme können mit zwei Aufgaben auftreten, da eine unterbrochen werden kann, während die gemeinsam genutzten Datenstrukturen aktualisiert werden und sich negativ auf die Datenintegrität auswirken können.

Andererseits ist es praktisch, eine Aufgabe innehalten zu können, um eine andere zu verwalten, die kritisch sein könnte.

In Summe

Viele Abweichungen und Abhängigkeiten in verschiedenen Richtlinien können definiert werden, z. B. die Verwendung von a "Round Robin Policy [i]" wo jede Aufgabe (mit gleicher Priorität) einmal ausgeführt und dann am Ende der Warteschlange für den nächsten Zyklus platziert wird.

Andere Richtlinien sind Als Erster rein, als erster raus, Kürzeste Arbeitste, Kürzester Arbeit, Kürzeste verbleibende Zeit, usw.

Die Analyse historischer Daten kann Informationen zu Aspekten liefern, z.