Betriebssystem - Prozessplanung

Definition

Die Prozessplanung ist die Aktivität des Prozessmanagers, die das Entfernen des laufenden Prozesses aus der CPU und die Auswahl eines anderen Prozesses auf der Grundlage einer bestimmten Strategie übernimmt.

Die Prozessplanung ist ein wesentlicher Bestandteil eines Multiprogramming-Betriebssystems. Mit solchen Betriebssystemen kann mehr als ein Prozess gleichzeitig in den ausführbaren Speicher geladen werden, und der geladene Prozess teilt die CPU mithilfe von Zeitmultiplex.

Prozessplanungswarteschlangen verarbeiten

Das Betriebssystem verwaltet alle Leiterplatten in Prozessplanungswarteschlangen. Das Betriebssystem unterhält für jeden Prozessstatus eine separate Warteschlange, und die Leiterplatten aller Prozesse im selben Ausführungsstatus werden in dieselbe Warteschlange gestellt. Wenn der Status eines Prozesses geändert wird, wird die Leiterplatte von der aktuellen Warteschlange getrennt und in die neue Statuswarteschlange verschoben.

Das Betriebssystem verwaltet die folgenden wichtigen Prozessplanungswarteschlangen:

  • Job queue - Diese Warteschlange hält alle Prozesse im System.

  • Ready queue- Diese Warteschlange hält eine Reihe aller Prozesse im Hauptspeicher bereit und wartet auf ihre Ausführung. In diese Warteschlange wird immer ein neuer Prozess gestellt.

  • Device queues - Diese Warteschlange bilden die Prozesse, die aufgrund der Nichtverfügbarkeit eines E / A-Geräts blockiert sind.

Das Betriebssystem kann unterschiedliche Richtlinien zum Verwalten jeder Warteschlange verwenden (FIFO, Round Robin, Priorität usw.). Der OS-Scheduler bestimmt, wie Prozesse zwischen den Bereitschafts- und Ausführungswarteschlangen verschoben werden, die nur einen Eintrag pro Prozessorkern im System haben können. Im obigen Diagramm wurde es mit der CPU zusammengeführt.

Zwei-Zustands-Prozessmodell

Das Zwei-Zustands-Prozessmodell bezieht sich auf laufende und nicht laufende Zustände, die nachfolgend beschrieben werden -

SN Zustand & Beschreibung
1

Running

Wenn ein neuer Prozess erstellt wird, tritt er wie im laufenden Zustand in das System ein.

2

Not Running

Prozesse, die nicht ausgeführt werden, werden in der Warteschlange gehalten und warten auf ihre Ausführung. Jeder Eintrag in der Warteschlange ist ein Zeiger auf einen bestimmten Prozess. Die Warteschlange wird mithilfe einer verknüpften Liste implementiert. Die Verwendung des Dispatchers ist wie folgt. Wenn ein Prozess unterbrochen wird, wird dieser Prozess in die Warteschlange übertragen. Wenn der Prozess abgeschlossen oder abgebrochen wurde, wird der Prozess verworfen. In beiden Fällen wählt der Dispatcher dann einen Prozess aus der Warteschlange aus, der ausgeführt werden soll.

Scheduler

Scheduler sind spezielle Systemsoftware, die die Prozessplanung auf verschiedene Arten handhabt. Ihre Hauptaufgabe besteht darin, die Jobs auszuwählen, die an das System gesendet werden sollen, und zu entscheiden, welcher Prozess ausgeführt werden soll. Es gibt drei Arten von Schedulern:

  • Langzeitplaner
  • Kurzzeitplaner
  • Mittelfristiger Planer

Langzeitplaner

Es wird auch a genannt job scheduler. Ein Langzeitplaner bestimmt, welche Programme zur Verarbeitung in das System zugelassen werden. Es wählt Prozesse aus der Warteschlange aus und lädt sie zur Ausführung in den Speicher. Prozess wird für die CPU-Planung in den Speicher geladen.

Das Hauptziel des Job Schedulers besteht darin, eine ausgewogene Mischung von Jobs bereitzustellen, z. B. E / A-gebunden und prozessorgebunden. Es steuert auch den Grad der Mehrfachprogrammierung. Wenn der Grad der Mehrfachprogrammierung stabil ist, muss die durchschnittliche Rate der Prozesserstellung gleich der durchschnittlichen Abgangsrate der Prozesse sein, die das System verlassen.

Auf einigen Systemen ist der Langzeitplaner möglicherweise nicht verfügbar oder minimal. Time-Sharing-Betriebssysteme haben keinen Langzeitplaner. Wenn ein Prozess den Status von neu auf bereit ändert, wird ein Langzeitplaner verwendet.

Kurzzeitplaner

Es wird auch als bezeichnet CPU scheduler. Hauptziel ist die Steigerung der Systemleistung gemäß den gewählten Kriterien. Dies ist die Änderung des Bereitschaftszustands in den Betriebszustand des Prozesses. Der CPU-Scheduler wählt einen Prozess unter den Prozessen aus, die zur Ausführung bereit sind, und weist einem von ihnen die CPU zu.

Kurzzeitplaner, auch Dispatcher genannt, entscheiden, welcher Prozess als nächstes ausgeführt werden soll. Kurzzeitplaner sind schneller als Langzeitplaner.

Mittelfristiger Planer

Die mittelfristige Planung ist ein Teil von swapping. Es entfernt die Prozesse aus dem Speicher. Es reduziert den Grad der Mehrfachprogrammierung. Der mittelfristige Scheduler ist für die Abwicklung der ausgelagerten Out-Prozesse verantwortlich.

Ein laufender Prozess kann angehalten werden, wenn eine E / A-Anforderung gestellt wird. Ein angehaltener Prozess kann keine Fortschritte auf dem Weg zum Abschluss machen. In diesem Zustand wird der angehaltene Prozess in den sekundären Speicher verschoben, um den Prozess aus dem Speicher zu entfernen und Platz für andere Prozesse zu schaffen. Dieser Vorgang wird aufgerufenswappingund der Prozess soll ausgetauscht oder ausgerollt werden. Möglicherweise ist ein Austausch erforderlich, um den Prozessmix zu verbessern.

Vergleich zwischen Scheduler

SN Langzeitplaner Kurzzeitplaner Mittelfristiger Planer
1 Es ist ein Job Scheduler Es ist ein CPU-Scheduler Es ist ein Prozessaustausch-Scheduler.
2 Die Geschwindigkeit ist geringer als bei einem Kurzzeitplaner Geschwindigkeit ist unter anderen beiden am schnellsten Die Geschwindigkeit liegt zwischen Kurz- und Langzeitplaner.
3 Es steuert den Grad der Mehrfachprogrammierung Es bietet eine geringere Kontrolle über den Grad der Mehrfachprogrammierung Es reduziert den Grad der Mehrfachprogrammierung.
4 Es ist im Time-Sharing-System fast nicht vorhanden oder minimal Es ist auch im Time-Sharing-System minimal Es ist Teil von Time-Sharing-Systemen.
5 Es wählt Prozesse aus dem Pool aus und lädt sie zur Ausführung in den Speicher Es wählt diejenigen Prozesse aus, die zur Ausführung bereit sind Es kann den Prozess wieder in den Speicher einführen und die Ausführung kann fortgesetzt werden.

Kontextwechsel

Ein Kontextwechsel ist der Mechanismus zum Speichern und Wiederherstellen des Status oder Kontexts einer CPU im Prozesssteuerungsblock, sodass eine Prozessausführung zu einem späteren Zeitpunkt an derselben Stelle fortgesetzt werden kann. Mit dieser Technik können mit einem Kontextumschalter mehrere Prozesse eine einzige CPU gemeinsam nutzen. Die Kontextumschaltung ist ein wesentlicher Bestandteil der Funktionen eines Multitasking-Betriebssystems.

Wenn der Scheduler die CPU von der Ausführung eines Prozesses zur Ausführung eines anderen umschaltet, wird der Status des aktuell ausgeführten Prozesses im Prozesssteuerblock gespeichert. Danach wird der Status für den nächsten Prozess von seiner eigenen Platine geladen und zum Einstellen des PCs, der Register usw. verwendet. An diesem Punkt kann der zweite Prozess mit der Ausführung beginnen.

Kontextwechsel sind rechenintensiv, da Register und Speicherstatus gespeichert und wiederhergestellt werden müssen. Um die Zeit für die Kontextumschaltung zu vermeiden, verwenden einige Hardwaresysteme zwei oder mehr Sätze von Prozessorregistern. Wenn der Prozess umgeschaltet wird, werden die folgenden Informationen zur späteren Verwendung gespeichert.

  • Programm zähler
  • Planungsinformationen
  • Basis- und Grenzregisterwert
  • Derzeit verwendetes Register
  • Geänderter Zustand
  • Informationen zum E / A-Status
  • Buchhaltungsinformationen